如何像在navicat中一样使用字符集
utf-8
创建数据库?create mydatabase;
...似乎正在使用某种默认字符集。
#1 楼
更新于2019-10-29正如@Manuel Jordan在评论中提到的那样,
utf8mb4_0900_ai_ci
是MySQL 8.0
中的新默认设置,因此以下再次成为更好的做法:CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
2019-10-29之前的答案注意:以下内容现在被认为是更好的做法(请参见bikeman868的回答):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
原始答案:
尝试一下:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
有关更多信息,请参见MySQL参考手册中的数据库字符集和排序规则。 br />
#2 楼
您应该使用:CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
请注意,不再建议使用
utf8_general_ci
最佳实践。请参阅相关的问答:堆栈溢出时utf8_general_ci和utf8_unicode_ci有什么区别。
评论
考虑更新您的答案以提及有关utf8mb4_0900_ai_ci。似乎比utf8mb4_unicode_ci好
–曼努埃尔·乔丹(Manuel Jordan)
19-10-9在17:58
评论
MySQL的utf8mb4是我们其他人所称的utf8。那么您问MySQL的utf8是什么?它是utf-8的受限版本,仅适用于部分字符,但不适用于emoji表情。后来他们添加了utf8mb4,这是正确的实现,但是MySQL必须保持向后兼容,以解决以前的错误,因此这就是为什么添加新编码而不是修复旧编码的原因。所有新数据库都应使用utf8mb4。
– Stijn de Witt
18年11月28日在20:38
如果您想钻进兔子洞:收集utf8mb4_unicode_520_ci或utf8mb4_0900_ai_ci甚至特定于语言环境的示例,例如:utf8mb4_vi_0900_ai_ci。对于MariaDB 10.2.2+,您拥有utf8mb4_unicode_520_nopad_ci的“ nopad”整理。 dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
–弗兰克·复地
19-3-22在14:09
@shellbye考虑更新您的答案以提及utf8mb4_0900_ai_ci。似乎比utf8mb4_unicode_ci好
–曼努埃尔·乔丹(Manuel Jordan)
19-10-9在17:58
@ManuelJordan根据您的建议进行了更新。
– shellbye
19-10-29在8:31
您知道这是否也适用于MariaDB吗?
–曼戈
3月10日3:06