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: [ ['
网友回复
为啥所有的照片分辨率提升工具都会修改照片上的图案细节?
js如何在浏览器中将webm视频的声音分离为单独音频?
微信小程序如何播放第三方域名url的mp4视频?
ai多模态大模型能实时识别视频中的手语为文字吗?
如何远程调试别人的chrome浏览器获取调试信息?
为啥js打开新网页window.open设置窗口宽高无效?
浏览器中js的navigator.mediaDevices.getDisplayMedia屏幕录像无法录制SpeechSynthesisUtterance产生的说话声音?
js中mediaRecorder如何录制window.speechSynthesis声音音频并下载?
python如何直接获取抖音短视频的音频文件url?
js在浏览器中如何使用MediaStream与MediaRecorder实现声音音频多轨道混流?