MySQL排序规则,用于存储未知语言的多语言数据

Imr*_*qvi 13 mysql unicode multilingual

我是多语言数据的新手,我的承认是我以前从未尝试过.目前我正在开发一个多语言网站,但我不知道将使用哪种语言.

我应该使用哪种校对/字符集来实现这一目标?

我应该使用某种Unicode类型的字符集吗?

当然,这些语言不属于这个世界,这些语言必须在我们主要使用的集合中.

mar*_*fer 19

您应该使用Unicode排序规则.您可以在系统或表的每个字段上默认设置它.有以下Unicode排序规则名称,这是它们的区别:

utf8_general_ci是一个非常简单的排序规则.它只是 - 删除所有重音 - 然后转换为大写并使用这种"基本字母"结果字母的代码进行比较.

utf8_unicode_ci使用默认的Unicode排序规则元素表.

主要区别是:

  1. utf8_unicode_ci支持所谓的扩展和连字,例如:德语字母ß(U + 00DF LETTER SHARP S)在"ss"附近排序.字母Œ(U + 0152 LATIN CAPITAL LIGATURE OE)在"OE"附近排序.

utf8_general_ci不支持扩展/连字,它将所有这些字母排序为单个字符,有时排序错误.

  1. 对于所有脚本,utf8_unicode_ci 通常更准确.例如,在西里尔语块上:utf8_unicode_ci适用于所有这些语言:俄语,保加利亚语,白俄罗斯语,马其顿语,塞尔维亚语和乌克兰语.虽然utf8_general_ci仅适用于俄罗斯和保加利亚语的西里尔语.白俄罗斯语,马其顿语,塞尔维亚语和乌克兰语中使用的额外字母排序不佳.

+/- utf8_unicode_ci的缺点是它比utf8_general_ci慢一点.

因此,如果您知道或不知道您将使用哪些特定语言/字符,我建议您使用覆盖范围更广的utf8_unicode_ci.

MySQL论坛中提取.