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

效果图

1.前端

解决node+mysql不能保存emoji表情包的问题_第1张图片

2.数据库 

解决node+mysql不能保存emoji表情包的问题_第2张图片

实现

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

如下:

解决node+mysql不能保存emoji表情包的问题_第3张图片

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

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

如下图所示: 

解决node+mysql不能保存emoji表情包的问题_第4张图片

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

前端实现

 @emoji.json

{
  "emojiList": ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,❤,,,,,,,,,,,,,❣,,,,☝,,,✌,✋,,,,✊,,,,,✍,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,☕,,,,,,,,,,,,,,,,,,,,,,,⚽,⚡,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,☠,,,,"
}

@chart.vue


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]
    }
  }
            
            
              
              
                
{{item}}

 

 

你可能感兴趣的:(node,mysql,javascript,mysql,node.js,vue.js,css)