为拉丁语/西里尔语组合语言数据选择字符集和排序规则

时间:2015-06-23 11:25:01

标签: mysql character-encoding internationalization collation

对于多语言应用程序,如何在phpmyadmin中配置MySQL数据库以在同一个表中存储拉丁语和西里尔数据集?

1 个答案:

答案 0 :(得分:2)

创建数据库时,可以选择默认值...

  • 字符集,用于定义字符的存储方式。
  • 整理以定义角色的排序和搜索方式。

你给出这样的命令:

 CREATE DATABASE mydata CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci

phpMyAdmin有一个对话框,提示您输入这些值。

(MySQL喜欢通过将服务器范围内的默认值设置为Latin1字符集和瑞典语校对来吹嘘其瑞典语根。所以请注意,您可能必须覆盖默认值。如果我是瑞典语,我也会吹嘘。)

然后,如果您愿意,您可以覆盖每个表甚至表的每一列的选择。

字符集是这些选项中最重要的一个,因为放入表中的数据将以该字符集表示。如果您的应用程序是一个新的开始,您应该选择字符集utf8mb4。无论如何,你应该选择像utf8这样的Unicode字符集。 Unicode能够用单个字符集代表几乎所有已知的自然语言,包括英语,西班牙语,西里尔语,马扎尔语,希伯来语,土耳其语,希腊语,阿拉伯语和东方语言。有关各种字符集的说明,请参见此处。

https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-sets.html

排序规则控制文本的排序和搜索方式。 MySQL提供了许多不区分大小写的排序规则。这对于自然语言文本来说非常酷,因为它使搜索工作更好。

你应该选择utf8mb4_unicode_ci作为新的开始,或者utf8_unicode_ci。除非你有非常具体的语言细节要处理,否则这应该对你有用。 (例如,西班牙语将Ñ作为单独的字母处理,而不是 N 的大小写变体。要做到这一点,您需要使用utf8mb4_spanish_ci或utf8_spanish_ci排序规则。)