Answers:
注意:以下内容现在被认为是更好的做法(请参见bikeman868的答案):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
原始答案:
尝试这个:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
有关更多信息,请参见《 MySQL参考手册》中的“ 数据库字符集和排序规则 ”。
COLLATE utf8mb4_unicode_520_ci
或者utf8mb4_0900_ai_ci
甚至是特定于语言环境,例如: utf8mb4_vi_0900_ai_ci
。对于MariaDB 10.2.2+,您具有“ nopad”归类utf8mb4_unicode_520_nopad_ci
。 dev.mysql.com/doc/refman/8.0/zh-CN/charset-unicode-sets.html
utf8mb4_0900_ai_ci
。似乎比utf8mb4_unicode_ci
您应该使用:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
请注意,utf8_general_ci
不再推荐最佳做法。请参阅相关的问答:
utf8mb4_0900_ai_ci
。似乎比utf8mb4_unicode_ci
utf8mb4
就是我们其余的人所说的utf8
。那么utf8
您问MySQL是什么?它是utf-8的受限版本,仅适用于部分字符,但不适用于emoji表情。后来他们添加utf8mb4
了正确的实现,但是MySQL必须保持向后兼容它的旧错误,因此这就是为什么添加了新编码而不是修复旧编码的原因。所有新数据库都应使用utf8mb4
。