mysql5.6已经设置成了utf8mb4,存入emoji后是????

mysql5.6已经设置成了utf8mb4,存入emoji后是????

表是 utf8

已单独为字段设置了utf8mb4
image.png

手动在mysql工具把表情复制到数据里会变问号

用程序写入表情也是会变问号

阅读 2.5k
2 个回答

检查你的连接的编码,一般在连接到数据库后会发送一条 set names utf8mb4 来表示这个连接使用 utf-8mb4 编码


-- 将表的字符集修改为UTF8MB4,下次新增列,若不显示指定字符集,新列字符集为UTF8MB4,但已经存在的列,其默认字符集并不做修改
ALTER TABLE emoji_test CHARSET utf8mb4;
-- 修改表中某一字段的字符集和排序规则
ALTER TABLE emoji_test CHANGE a a char(1) CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
-- 要修改已经存在的列的字符集和排序规则,应该使用CONVERT TO
ALTER TABLE emoji_test CONVERT TO CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏