我是多语言数据的新手,我的承认是我之前从未尝试过。 目前我正在开发一个多语言网站,但我不知道将使用哪种语言。
我应该使用哪种MySQL校对/字符集来实现这一目标?
我应该使用某种Unicode类型的字符集吗?
当然,这些语言不属于这个世界,这些语言必须在我们最常使用的集合中。
答案 0 :(得分:17)
您应该使用Unicode排序规则。您可以在系统或表的每个字段上默认设置它。有以下Unicode排序规则名称,这是它们的区别:
utf8_general_ci是一个非常简单的排序规则。它只是 - 删除所有重音 - 然后转换为大写 并使用此类“基本字母”结果字母的代码进行比较。
utf8_unicode_ci使用默认的Unicode排序规则元素表。
主要区别是:
utf8_general_ci不支持扩展/连字,它将所有这些字母排序为单个字符,有时排序错误。
+/- utf8_unicode_ci的缺点是它比utf8_general_ci慢一点。
因此,如果您知道或不知道您将使用哪些特定语言/字符,我建议您使用覆盖范围更广的utf8_unicode_ci。
摘自MySQL forums。
答案 1 :(得分:1)
UTF-8
包含大多数语言,这是您最安全的选择。但是,也有例外情况,您需要确保要覆盖的所有语言都使用UTF-8。我存储MySQL不理解的字符集的经验是,它无法正确排序,但只要我用我写的相同字符编码读出数据,数据就保持不变。
UTF-8
是字符编码,一种存储数字的方式。哪个字符由哪个数字Unicode
表示 - 这是一个重要的区别。 Unicode包含大量语言,UTF-8
可以对它们进行全部编码(0到10FFFF,排序),但Java无法处理所有,因为VM内部表示是一个16位字符(不是你关心Java:)。
答案 2 :(得分:0)
您可以通过将表字段的排序更改为'utf8_general_ci'来在MySQL表中插入任何语言文本。它不区分大小写。