{"success":true,"code":0,"msg":"","data":{"themeEx":{"tid":358,"replies":0,"views":4028,"searchs":1,"topGmtUpdate":null,"top":false},"theme":{"id":358,"title":"Mysql5.6存储emoji表情问题","content":"
\n\t原因:mysql默认utf-8一字符为3字节,而emoji是4字节
\n\t解决方案:
首先mysql版本>=5.5.3
修改 my.cnf或者mysql.ini
[client]\n default-character-set = utf8mb4\n[mysql]\n default-character-set = utf8mb4\n[mysqld]\n character-set-client-handshake = FALSE\n character-set-server = utf8mb4\n collation-server = utf8mb4_unicode_ci\n init_connect='SET NAMES utf8mb4'
重启 MySQL Server、检查字符集
SHOW VARIABLES WHERE Variable_name LIKE 'character\\_set\\_%' OR Variable_name LIKE 'collation%';
修改数据库字符集:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
修改表的字符集:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
注意:5.6版本的my.ini文件在ProgramData里,这里其实是一个读取顺序的问题,先读取ProgramData,再读取安装目录下。
","contentView":"原因:mysql默认utf-8一字符为3字节,而emoji是4字节\n\t解决方案:首先mysql版本>=5.5.3修改 my.cnf或者mysql.ini[client]\ndefault-character-set=utf8mb4\n[mysql]\ndefault-character-set=utf8mb4\n[mysqld]\ncharacter-set-client-handshake=FALS","author":"幻幻Fate","authorId":1,"fid":14,"forumName":"数据库","reprint":false,"status":2,"statusName":"已发布","tags":"emoji,Mysql,5.6","tagList":["emoji","Mysql","5.6"],"imgList":"https://oss.reinforce.cn/forum/201604/27/image/QQ截图20160427182103.png-thumbnail,","topImg":"https://oss.reinforce.cn/forum/201604/27/image/QQ截图20160427182103.png-thumbnail","url":"https://www.reinforce.cn/t/358.html","imgs":["https://oss.reinforce.cn/forum/201604/27/image/QQ截图20160427182103.png-thumbnail"],"css":null,"js":null,"publishTime":1461752136000,"timeForRead":"2016年04月","gmtCreate":null,"gmtModified":1575611590000,"replies":0,"views":4023,"searchs":1,"top":false}}}