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: [
[' 网友回复


