使用表情符号导出数据库
Posted
技术标签:
【中文标题】使用表情符号导出数据库【英文标题】:Export database with emoji 【发布时间】:2018-03-12 09:43:08 【问题描述】:我想用表情符号导出我的数据库,但导出有问题。当我导出表格时,表情符号被替换为“?”。
例如:
当我导出和导入时,我有这个:
我检查了我的表 (utf-8):
我使用 Sequel Pro 进行导出和导入。
但是,如果我尝试使用 DataGrip,并且直接使用“?”,我将永远看不到表情符号:
【问题讨论】:
【参考方案1】:在运行查询之前,运行
set names utf8mb4;
为什么?
简而言之。
首先,Emoji 通常占用四个字节,但是,mysql 的 utf8
,utf8mb3
的别名,使用一到三个字节(即最大字节三个),无法理解 Emoji 字符。因此,您会看到一个“?”在你的结果中。 utf8mb4
可以完成这项工作,因为它每个多字节字符最多需要四个字节。
其次,set names utf8mb4
会设置三个会话变量,例如,
SET character_set_client = utf8mb4;
SET character_set_results = utf8mb4;
SET character_set_connection = utf8mb4;
这将协调服务器、客户端和结果字符集之间的障碍,因此我们可以正确查看表情符号。
更多信息,您可以在文档中找到
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
https://dev.mysql.com/doc/refman/8.0/en/set-names.html
【讨论】:
虽然这可能会解决 OP 的问题,但如果您 edit 它来解释为什么会这样,那将是一个更好的答案。描述utf8mb4
是一个好的开始。
@shoover 嗨,谢谢你的建议,我已经添加了解释。以上是关于使用表情符号导出数据库的主要内容,如果未能解决你的问题,请参考以下文章