我正在为网站设置一个新的MySQL数据库,我希望内容类型为UTF-8。
为什么MySQL有这么多不同的,看似特定于语言的UTF-8排序规则?如果没有切换编码,它将包含所有这些语言,这不是UTF-8的重点吗?什么是“_bin”和“_cs”和“_ci”符号?选择“_bin”会使一些操作区分大小写吗?
我的网站主要使用英文,但显然我希望能够做一些事情,例如将日文字符粘贴到我的文本中而不会发生意外。
答案 0 :(得分:4)
我认为MySQL docs拥有我读过的最好的鸟瞰图。
短篇小说。 。
归类定义了排序和比较的顺序。以“_cs”结尾的排名区分大小写; “_ci”表示不区分大小写。对于text,char或varchar,可能需要其中一个。
排序和与“_bin”排序规则比较的顺序由字符的二进制值决定。 “_bin”归类的值将逐字节复制到目标列。 (其他归类的值可能会转换为不同的字符集。)所有字符都很重要,包括尾随空格。 大写和小写毫无意义。