如何在mysql中查看utf8mbf列的collate?

lmyy7pcs  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(329)

以下是我使用的命令:

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”对字符无效
你知道吗?

3xiyfsfu

3xiyfsfu1#

第一部分 COLLATION 名称必须与 CHARACTER SET 姓名。 CHARACTER SET utf8mb4 是表情符号和一些汉字所需要的。
让我们回到“真正”的问题——问号。 COLLATION 是指排序规则,而不是编码规则。 CHARACTER SET 指编码。这在所有阶段都应该是一致的。问号来自前后矛盾。
utf-8字符故障;我看到的并不是我储存的东西,我指出这些可能是问号的嫌疑犯:
要存储的字节不编码为utf8/utf8mb4。修好这个。
数据库中的列不是字符集utf8mb4。如果需要4字节utf-8,请修复此问题(使用“显示创建表”。)
另外,检查读取期间的连接是否为utf-8。细节取决于执行连接的应用程序。

hjzp0vay

hjzp0vay2#

这对我有用:

ALTER TABLE <table_name> MODIFY <column_name> VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

相关问题