我有一个CSV文件,其中包含带有表情符号(例如"酷!")的推文,我需要将它们导入MySQL表,以便正确保存/显示它们...我必须设置什么以及如何正确导入(我指的是排序等)?💕") and I need to import them into a MySQL table in such a way they will be saved/displayed correctly... What do I have to set up and how for a correct import (I mean collation, etc.)?
更多详情:
- 在CSV文件中,表情符号可见
- CSV文件的编码为UTF-8
- 我正在使用Windows 11
我已经试过了
- 在表中将字符集设置为utf8mb4并将归类设置为utf8mb4_unicode_ci
- 增加"设置名称'utf8mb4';"(也尝试使用Latin1),然后执行LOAD查询
1条答案
按热度按时间hpxqektj1#
该表必须使用字符集utf8mb4对文本进行编码,以存储表情符号。
演示:
所以utf8不支持表情符号。
但是utf8mb4支持emojis,不同的是utf8mb4支持4字节编码,而utf8不支持,这是MySQL历史上不幸的一部分,他们最初实现utf8不是为了支持UTF-8标准的补充多语言平面。
让我们看看修改第一个表是否有帮助。
为什么不起作用呢?因为
alter table ... character set
不转换现有的列,它只改变表的默认字符集,直到下一次向表中添加列时才使用。我们可以看到现有的列仍然使用旧的字符集:
utf8mb3是
utf8
在MySQL 8.0中作为别名的字符集。要转换现有列,请使用:
否,再次尝试加载:
注意,有一天,MySQL可能会将'utf8'别名改为utf8mb4,这在上面许多'utf8'用法的警告中显示:
"utf8"当前是字符集UTF8MB3的别名,但在将来的版本中将是UTF8MB4的别名。请考虑使用UTF8MB4以明确。