以下是我使用的命令:
ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
效果很好。现在我要开始了 utf8mb4_unicode_ci
对于列(因为当前字符显示为 ???
). 不管怎样,这是我的新命令:
ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(255) CHARACTER SET utf8 COLLATE utf8mb4_unicode_ci;
但遗憾的是:
erroacr 1253(42000):排序规则“utf8mb4\u unicode\u ci”对字符无效
你知道吗?
2条答案
按热度按时间3xiyfsfu1#
第一部分
COLLATION
名称必须与CHARACTER SET
姓名。CHARACTER SET utf8mb4
是表情符号和一些汉字所需要的。让我们回到“真正”的问题——问号。
COLLATION
是指排序规则,而不是编码规则。CHARACTER SET
指编码。这在所有阶段都应该是一致的。问号来自前后矛盾。utf-8字符故障;我看到的并不是我储存的东西,我指出这些可能是问号的嫌疑犯:
要存储的字节不编码为utf8/utf8mb4。修好这个。
数据库中的列不是字符集utf8mb4。如果需要4字节utf-8,请修复此问题(使用“显示创建表”。)
另外,检查读取期间的连接是否为utf-8。细节取决于执行连接的应用程序。
hjzp0vay2#
这对我有用: