在mysql数据库中保存emoji特殊字符

转载 2017年08月24日 16:45:21

原文地址:http://blog.csdn.net/fudaoji/article/details/70239479

MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也 不会对已有的utf8编码读取产生任何问题。

一次在做微信二开的项目时,发现保存微信用户信息的nickname时报错,寻找原因发现是有些用户昵称是带有emoji表情符的,并且当时的数据库表属性设置的字符编码还是utf8的,数据库当然会报错。经过网上搜索一些资料,找到了完整的解决方案:

1. 修改database,table,column字符集:

这里我有做测试,其实只用修改你包含emoji表情符 的列的编码为utf8mb4就好了,不用把整个数据库,整个表都修改。

[sql] view plain copy print?
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;  
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  
ALTER TABLE table_name CHANGE column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;      

2. 编辑my.cnf文件,在对应章节添加如下内容:

此文件要修改

[sql] view plain copy print?
[client]  
default-character-set = utf8mb4  
[mysql]  
default-character-set = utf8mb4  
[mysqld]  
character-set-client-handshake = FALSE  
character-set-server = utf8mb4  
collation-server = utf8mb4_unicode_ci  
init_connect='SET NAMES utf8mb4'  

3. 重启mysql服务即可

如何在mysql数据库中保存emoji特殊字符

MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8...
  • fudaoji
  • fudaoji
  • 2017年04月19日 13:55
  • 3824

emoji表情存入mysql设置 jun原创

修改mysql配置文件my.cnf(window为my.ini) [client] default-character-set = utf8mb4 [mysql] default-charac...
  • it304
  • it304
  • 2016年11月10日 16:29
  • 416

Qt 加载特殊字符

Qt的控件有些字符是不可显示的。
  • NewBorad
  • NewBorad
  • 2014年10月31日 14:44
  • 1328

mysql保存不了微信表情符emoji问题解决方案

问题描述:当微信昵称中有emoji表情符时,mysql数据库报更新异常:java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94...
  • yown
  • yown
  • 2016年09月22日 20:36
  • 3807

通过node.js保存emoji到mysql

什么是emoji emoji在诞生之初有多种标准,所以早期兼容性是个问题。但是现在已经标准化了,是unicode的一部分。可以认为,跟字母、汉字一样,emoji就是unicode中一个普通的字符...
  • kyfxbl
  • kyfxbl
  • 2015年06月29日 18:22
  • 1560

Emoji保存到数据库问题【小程序入坑系列】

目前使用的数据库是mysql而且默认的数据字符集是“utf-8”,当小程序用户的昵称中含有emoji图片的时候保存到数据库就会有问题。使用mysql数据库的时候,如果字符集是UTF-8并且在java服...
  • LOVELONG8808
  • LOVELONG8808
  • 2017年07月31日 10:36
  • 717

MySQL无法存储Emoji表情问题

数据插入的时候报错: 1366 - Incorrect string value: '\xF0\x9F\x98\x81' for column 'job' at row 23 解决办法: 1、修...
  • xb12369
  • xb12369
  • 2015年07月30日 17:10
  • 9306

微信emoji表情编码的处理与储存

小编第一次碰到这个问题是在做微信开发认证的时候,微信认证获取用户昵称的时候,当获取到带emoji表情的时候,小编发现后台显示的是乱码或者是显示为NULL(前台展示为游客) 既然碰到,解决了,就简单给...
  • donglynn
  • donglynn
  • 2017年06月28日 12:46
  • 1915

UTF-8编码Emoji表情或者某些特殊字符是4个字节导致数据插不进去

1.中文写入乱码问题: 我输入的中文编码是urf8的,建的库是urf8的,但是插入mysql总是乱码,一堆"???????????????????????" 我用的是ibatis,...
  • u010737354
  • u010737354
  • 2016年09月07日 09:45
  • 4918

关于后台接收并存储移动端自带emoji的详细方法(mysql数据库)

关于后台接收并存储移动端自带emoji的方法(mysql数据库)本文章主要记录我在处理后台接收移动端自带emoji时候遇到的问题以及解决方法。本文章为博主一字一句自打成文,如存在相关侵权问题,请联系博...
  • qq_24247249
  • qq_24247249
  • 2017年03月02日 20:15
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在mysql数据库中保存emoji特殊字符
举报原因:
原因补充:

(最多只允许输入30个字)