如何在mysql数据库中保存emoji特殊字符
2017-04-19 13:55
176 查看
MySQL在5.5.3版本之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。其实,utf8mb4是utf8的超集,理论上原来使用utf8,然后将字符集修改为utf8mb4,也
会不会对已有的utf8编码读取产生任何问题。
一次在做微信二开的项目时,发现保存微信用户信息的nickname时报错,寻找原因发现是有些用户昵称是带有emoji表情符的,并且当时的数据库表属性设置的字符编码还是utf8的,数据库当然会报错。经过网上搜索一些资料,找到了完整的解决方案:
修改database,table,column字符集:
编辑my.cnf文件,在对应章节添加如下内容:
重启mysql服务即可
会不会对已有的utf8编码读取产生任何问题。
一次在做微信二开的项目时,发现保存微信用户信息的nickname时报错,寻找原因发现是有些用户昵称是带有emoji表情符的,并且当时的数据库表属性设置的字符编码还是utf8的,数据库当然会报错。经过网上搜索一些资料,找到了完整的解决方案:
修改database,table,column字符集:
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;
编辑my.cnf文件,在对应章节添加如下内容:
[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'
重启mysql服务即可
相关文章推荐
- 在mysql数据库中保存emoji特殊字符
- 保存特殊字符到utf8编码的mysql数据库中
- 关于java中如何获得特殊字符(转载)
- 如何解决在.Net中用Sql语句向SqlServer数据库中插入特殊字符失败的问题?
- Linux/Unix下如何删除具有特殊字符的文件
- (转)oracle中如何插入特殊字符:& 和 ' (多种解决方案)
- 如何处理含有特殊字符的数据库查询语句
- 如何插入特殊字符
- 如何使用jquery对特殊字符进行转义,防止js注入
- 如何让在Html中特殊字符不被转义(如 等)
- 特殊字符变乱码问题如何解决呢?
- 特殊字符保存到SQL数据库的问题
- 在emf 中保存特殊字符
- 在WORD中如何查找特殊字符
- 在emf 中保存特殊字符
- 如何在SQL中写RDBMS的特殊字符而不被执行其功能(how to escape sepecial characters in sql)
- 如何在sql的查询语句中插入特殊字符
- 如何正确在JSP传送中文或特殊字符
- 在emf 中保存特殊字符
- Flex的应用中如何使用特殊字符的例子