解决node+mysql不能保存emoji表情包的问题

news2024/10/6 12:23:29

效果图

1.前端

2.数据库 

实现

Emoji表情是4个字节,而mysql的utf8编码最多3个字节,所以数据插不进去,而utfmb64是支持四个字节的。所以需要将mysql编码从utf8转换成utf8mb4,从【数据库、表、相应字段】都需要修改为utf8mb4,切记!!!

如下:

 这时候直接在数据库保存emoji表情包是没有问题的,但是使用nodejs进行操作数据库时还是会报错,就需要在nodejs链接数据库的配置中添加这一句:

charset: 'UTF8MB4_UNICODE_CI', // 用于保存和读取表情包这种4字节的

如下图所示: 

 这样就成功实现了nodejs在mysql中对emoji的保存和读取。

前端实现

 @emoji.json

{
  "emojiList": "😀,😁,😂,😃,😄,😅,😆,😉,😊,😋,😎,😍,😘,😗,😙,😚,😇,😐,😑,😶,😏,😣,😥,😮,😯,😪,😫,😴,😌,😛,😜,😝,😒,😓,😔,😕,😲,😷,😖,😞,😟,😤,😢,😭,😦,😧,😨,😬,😰,😱,😳,😵,😡,😠,💘,❤,💓,💔,💕,💖,💗,💙,💚,💛,💜,💝,💞,💟,❣,💪,👈,👉,☝,👆,👇,✌,✋,👌,👍,👎,✊,👊,👋,👏,👐,✍,🍇,🍈,🍉,🍊,🍋,🍌,🍍,🍎,🍏,🍐,🍑,🍒,🍓,🍅,🍆,🌽,🍄,🌰,🍞,🍖,🍗,🍔,🍟,🍕,🍳,🍲,🍱,🍘,🍙,🍚,🍛,🍜,🍝,🍠,🍢,🍣,🍤,🍥,🍡,🍦,🍧,🍨,🍩,🍪,🎂,🍰,🍫,🍬,🍭,🍮,🍯,🍼,☕,🍵,🍶,🍷,🍸,🍹,🍺,🍻,🍴,🌹,🍀,🍎,💰,📱,🌙,🍁,🍂,🍃,🌷,💎,🔪,🔫,🏀,⚽,⚡,👄,👍,🔥,🙈,🙉,🙊,🐵,🐒,🐶,🐕,🐩,🐺,🐱,😺,😸,😹,😻,😼,😽,🙀,😿,😾,🐈,🐯,🐅,🐆,🐴,🐎,🐮,🐂,🐃,🐄,🐷,🐖,🐗,🐽,🐏,🐑,🐐,🐪,🐫,🐘,🐭,🐁,🐀,🐹,🐰,🐇,🐻,🐨,🐼,🐾,🐔,🐓,🐣,🐤,🐥,🐦,🐧,🐸,🐊,🐢,🐍,🐲,🐉,🐳,🐋,🐬,🐟,🐠,🐡,🐙,🐚,🐌,🐛,🐜,🐝,🐞,🦋,😈,👿,👹,👺,💀,☠,👻,👽,👾,💣"
}

@chart.vue

<srcipt>
const {emojiList} = require('./emoji.json')

export default {
  name: 'chart',
  data () {
    return {
      mess: '', // 聊天输入的信息
      emojiList: emojiList.split(',') // 表情包列表
    }
  },
  methods: {
    // 表情包点击事件
    emojiDown (index) {
      this.mess = this.mess + this.emojiList[index]
    }
  }
</script>
            <!--表情包发送功能-->
            <el-dropdown placement="top-start">
              <div class="footer_content_menu_face">
                <i class="iconfont icon-face"></i>
              </div>
              <el-dropdown-menu slot="dropdown">
                <div class="face_list">
                  <div v-for="(item, index) in emojiList" v-bind:key="index" class="face-item" @click="emojiDown(index)">
                    {{item}}
                  </div>
                </div>
              </el-dropdown-menu>
            </el-dropdown>
<style scoped>
.footer_content_menu_face{
  width: 30px;
  height: 30px;
  text-align: center;
  font-size: 20px;
}
.footer_content_menu_face:hover .icon-face{
  color: #01a3fc;
}
.face_list{
  width: 300px;
  height: 200px;
  display: flex;
  flex-wrap: wrap;
  overflow-y: auto;
  overflow-x: hidden;
}
.face-item{
  width: 30px;
  height: 30px;
  border: solid 1px #e0e0e0;
  margin: 0 -1px -1px 0;/*解决相邻border看起来很粗问题*/
  text-align: center;
  font-size: 20px;
}
</style>

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723578.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask+Vue+小程序电商生态系统

完整资料进入【数字空间】查看——baidu搜索"writebug" 本项目为FlaskVue小程序全栈开源电商生态系统。本项目使用的技术有&#xff1a;前端&#xff1a;VueIviewWxxcx&#xff1b;后端&#xff1a;FlaskMysql&#xff1b;部署&#xff1a;NginxGunicorn。该项目包含…

C++—异常与类型转换、大小端存储、不使用额外空间的情况下交换两个数

异常 常见的异常包括&#xff1a;数组下标越界&#xff0c;除法计算的时候除数为0&#xff0c;动态分配空间时空间不足。 try&#xff0c;throw&#xff0c;catch #include <iostream> using namespace std; int main() {double m 1, n 0;try {cout << "b…

其实,大多数的项目经理都是在假装努力罢了

早上好&#xff0c;我是老原。 有很多项目经理平时忙的团团转&#xff0c;看起来努力的不行&#xff0c;但实际上进度缓慢、结果不佳&#xff0c;更别说个人成长了&#xff0c;问就是工作都这么忙了&#xff0c;哪有时间。 说来也能理解&#xff0c;毕竟现在不是007就是996&a…

spring整合RabbitMQ

先导入依赖POM.xml 之前导的不全一直报错后面导入的可能有多的 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:sc…

Python3,66行代码,搞了个音乐下载器,从此听歌再也不需要花费银子了,真香!

66行代码敲出音乐下载器 1、引言2、代码实战2.1 思路2.2 安装2.3 示例 3、 总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;最近比较流行的那首歌&#xff0c; 咋又说费了。 小鱼&#xff1a;那你就冲个VIP呗。 小屌丝&#xff1a;开玩笑&#xff0c; 我的钱又不是大风刮过来…

第2集丨JavaScript 中原型链(prototype chain)与继承

目录 一、一些基础概念1.1 ECMAScript 标准1.2 prototype和 __proto__1.3 constructor属性1.4 函数名 二、原型链的维护2.1 内部原型链和构造器原型链2.2 从实例回溯原型链2.3 修正原型指向 三、基于原型链的继承3.1 继承属性3.2 继承“方法” 四、构造函数4.1 案例一个简单的实…

SAP S4 Hana 财务凭证存储表变化

一、统一日记账的表 1. ACDOCA里有的&#xff0c;BSEG里不一定有 以下的一些凭证行项目&#xff0c;都是只在ACDOCA表里面存在&#xff0c;而在BSEG表里不存在的&#xff08;你可以通过BKPF表的BSTAT字段的凭证状态U来识别&#xff09;&#xff1a; 资产折旧过账 特定账套&am…

VMware Workstation虚拟机如何连接usb网卡

小伙伴不知道怎么将网卡链接到VMware虚拟机系统里面&#xff0c;因此今天我们就做一个简单的教程&#xff0c;教大家如何连接虚拟机使用&#xff1a; 1.插上usb网卡&#xff0c;然后如下图所示操作&#xff1a; 2.点击连接网卡到虚拟机之后&#xff0c;查询一下网卡是否识别到…

【JAVA程序员学C++】第二节、引用与指针,类型转换,结构体

一、指针与引用 1.1 指针 先说指针&#xff0c;由于java有jvm&#xff0c;所以对于java程序员&#xff0c;对于内存这一块关注就毕竟少了。但是C不同&#xff0c;C里面所有的堆内存&#xff0c;都需要程序员自己把控&#xff0c;把控不好&#xff0c;泄露了也是常有的事情。 …

Leetcode刷题笔记--Hot11-20

1--有效的括号&#xff08;20&#xff09; 主要思路&#xff1a; 利用栈&#xff0c;遍历字符串&#xff0c;遇到左括号则入栈&#xff0c;遇到右括号则出栈&#xff0c;并判断出栈元素是否与右括号匹配&#xff1b; 当字符串有效时&#xff0c;栈为空&#xff08;所有左括号都…

python语法 数据结构-字典和集合

文章目录 1. 字典1. 1. 字典特征1. 2. 创建字典1. 3.字典常用方法1.3.1 get()1.3.2 clear()1.3.3 copy()1.3.4 copy()1.3.4 update(key value)1.3.5 keys()、 values()和items() 1. 4. 获取字典值1. 4.1 通过 Key1. 4.2 通过迭代 1. 5. 列表与运算符 2. 集合2. 1. 元组特征2. …

NSS [HNCTF 2022 WEEK2]easy_include

NSS [HNCTF 2022 WEEK2]easy_include 过滤好多&#xff0c;试试日志包含。 服务器是nginx ?file/var/log/nginx/access.log 修改UA头为<?php system(‘ls’); ?> 修改UA头为<?php system(‘ls /’); ?> 修改UA头为<?php system(tac /ffflllaaaggg); ?&g

word2vec工具实战(使用gensim)

最开始需要新建一个conda环境 conda create -n word2vec python3.8 conda activate word2vec然后安装一下所需要的库 pip install numpy pip install scipy pip install gensim pip install jieba首先下载一下数据集zhwiki-20230701-pages-articles.xml.bz2&#xff0c;为了方…

数据库如何建表

MySQL数据库建表过程 目录 创建并使用数据库 第一步&#xff1a;打开命令行 第二步&#xff1a;运行MySQL 第三步&#xff1a;建立数据库以及表数据 创建表时约束条件 约束类型 其他SQL语句 MySQL命令行导入导出数据库 创建并使用数据库 第一步&#xff1a;打开命令…

帧内帧间预测实验

帧内帧间预测实验 文章目录 帧内帧间预测实验帧间预测配置opencv 帧内预测解决jupyter notebook无法找到虚拟环境的问题 帧间预测 配置opencv .h文件是头文件&#xff0c;包含了类、函数、变量的声明&#xff0c;用于在源代码文件中引用和访问这些声明。头文件通常包含函数和…

【OpenCV • c++】图像几何变换 | 图像坐标映射

&#x1f680; 个人简介&#xff1a;CSDN「博客新星」TOP 10 &#xff0c; C/C 领域新星创作者&#x1f49f; 作 者&#xff1a;锡兰_CC ❣️&#x1f4dd; 专 栏&#xff1a;【OpenCV • c】计算机视觉&#x1f308; 若有帮助&#xff0c;还请关注➕点赞➕收藏&#xff…

基于PyQt5的桌面图像调试仿真平台开发(12)图像灰度显示

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

BUU [网鼎杯 2020 青龙组]AreUSerialz

BUU [网鼎杯 2020 青龙组]AreUSerialz 先看题目&#xff0c;是个php反序列化。源码如下。 <?phpinclude("flag.php");highlight_file(__FILE__);class FileHandler {protected $op;protected $filename; protected $content;function __construct(…

Ceph:关于 Ceph 中 BlueStore 架构以及 OSD 创建的一些笔记

写在前面 准备考试&#xff0c;整理ceph 相关笔记内容涉及&#xff1a;Blue Store OSD 存储引擎介绍&#xff0c;对应 OSD 的不同创建方式理解不足小伙伴帮忙指正 对每个人而言&#xff0c;真正的职责只有一个&#xff1a;找到自我。然后在心中坚守其一生&#xff0c;全心全意&…

FreeCAD 3D绘图教程

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D开发工具链 构建现实世界 FreeCAD主要用于为现实世界设计对象。您在FreeCAD中所做的一切都使用现实世界的单位&#xff0c;无论是微米&#xff0c;公里&#xff0c;英寸还是英尺&#xff0c;甚至是单位的任意组合。FreeCAD提供了…