1、首先要保证mysql数据库的编码为utf8mb4
数据库字符集设置
在创建数据库时,可以设置字符集为 `utf8mb4`,该字符集支持 Emoji 表情。
CREATE DATABASE your_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;表字符集和排序规则:
在创建表时,也要确保表的字符集和排序规则设置为 `utf8mb4`。
CREATE TABLE your_table ( id INT PRIMARY KEY, emoji_column VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci );字段字符集设置:
对于存储 Emoji 表情的字段,确保其字符集也设置为 `utf8mb4`。
ALTER TABLE your_table MODIFY emoji_column VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;连接字符集设置:
在连接数据库时,确保连接字符集设置为 `utf8mb4`。 SET NAMES utf8mb4; 或者在连接字符串中添加字符集参数:
const connection = mysql.createConnection({ host: 'your_host', user: 'your_user', password: 'your_password', database: 'your_database', charset: 'utf8mb4' });确保所有这些设置都正确,可以正确地存储和检索包含 Emoji 表情的数据。如果数据库和表的字符集没有设置为 `utf8mb4`,将导致 Emoji 表情被存储为乱码。
2、uniapp代码
<template> <view style="margin-right: 10rpx;margin-left: 20rpx;height: 446rpx;"> <!--列表--> <list :show-scrollbar='false'> <!-- 注意事项: 不能使用 index 作为 key 的唯一标识 --> <cell v-for="(items, index) in emojData" :key="items.id"> <view style="display: flex;flex-direction: row;"> <block v-for="(item, index) in items"> <view class="emoj_parent" hover-class="checkActive" hover-stay-time="100" @click="tuchEmoj(item,index)"> <text @click="tuchEmoj(item,index)" class="emoj_conn">{{item}}</text> </view> </block> </view> </cell> </list> </view> </template> <script> export default { data() { return { emojData: [ ['
网友回复