我想用表情符号导出我的数据库,但我在导出时遇到了问题。当我导出我的表格时,表情符号被替换为"?“。
例如:
当我导出和导入时,我有以下内容:
我检查了我的表(utf-8):
我使用Sequel Pro导出和导入。
但如果我试着用DataGrip,我直接看到了"?",我永远看不到这个表情符号:
发布于 2018-07-13 12:08:20
在运行查询之前,请运行
set names utf8mb4;
为什么?
总之。
首先,Emoji通常需要四个字节,然而,mysql的utf8
,utf8mb3
的别名,使用一到三个字节(即最大字节3),这不能理解Emoji字符。因此,你会看到一个'?‘在你的结果中。utf8mb4
可以完成这项工作,因为它要求每个多字节字符最多四个字节。
其次,set names utf8mb4
将设置三个会话变量,例如,
SET character_set_client = utf8mb4;
SET character_set_results = utf8mb4;
SET character_set_connection = utf8mb4;
这将协调服务器,客户端和结果字符集之间的障碍,因此我们可以正确地查看Emoji。
有关更多信息,您可以在文档中找到
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
https://stackoverflow.com/questions/49232115
复制相似问题