utf8整理与丹麦语的区别

Tho*_*asK 4 php mysql utf-8 character-encoding

那你好.我正在将数据库的字符集从更改latin1_sweedish_ciutf8.我总是使用,utf8_danish_ci因为它是最接近挪威人的风格 - 我想.
但是,我们utf8_general_ciutf8_unicode_ci

前一段时间; 由于排序算法在后者中更复杂,因此优选使用_general_ci更好/更快的性能,并且_unicode_ci更准确.但是,由于速度/性能不再是问题 - 或者_unicode_ci在大多数情况下不再是问题 - 在大多数情况下都可以使用吗?

但是有什么_unicode_ci不同_danish_ci呢?
它是最后三个字母æ,ø,å在考虑到北欧字母?

我发现的大多数比较(一个与另一个)只是在_general_ci和之间_unicode_ci.

任何人都知道何时使用_unicode_ci或何时使用的例子_danish_ci将受到高度赞赏......

Den*_*rdy 6

简而言之,如果您的应用程序是多语言的并且在同一个表中存储多种语言,那么您大部分都是搞砸了,并且应该担心在数据库之外进行排序/整理 - utf8_general_ci就像其他任何一样好.

如果它只支持单一语言,你可以通过在数据库级别设置正确的排序规则来做得很好 - 在你的情况下,确实是utf8_danish_ci,因为如果维基百科是任何东西,它与挪威语相同.

如果您想阅读有关整理的更多内容,ICU文档会提供丰富的例子,说明这种东西是多么棘手.引用广泛:

http://userguide.icu-project.org/collat​​ion

[H]是语言在排序字符串中的一些方式:

字母AZ可以按与英语不同的顺序排序.例如,在立陶宛语中,"y"在"i"和"k"之间排序.

字母组合可以被视为一个字母.例如,在传统的西班牙语中,"ch"被视为单个字母,并在"c"和"d"之间排序.

重音字母可视为非重音字母的次要变体.例如,"é"可以被视为等同于"e".

重音字母可以视为不同的字母.例如,丹麦语中的"Å"被视为在"Z"之后排序的单独字母.

在一种语言中被认为是不同的非重音字母在另一种语言中可能是不明显的.例如,根据英语,字母"v"和"w"是两个不同的字母.但是,"v"和"w"被认为是瑞典语中相同字母的变体形式.

一封信可以被视为两个字母.例如,在传统的德语中,"ä"被比作好像是"ae".

泰国要求撤销某些字母的顺序.

法语要求在字符串末尾用重音符号排序的字母在字符串开头的重音符号之前进行排序.例如,"côte"这个词在"coté"之前排序,因为最后"e"的尖锐重音比"o"上的旋律更重要.

有时小写字母排在大写字母之前.在其他情况下需要相反.例如,小写字母通常在英文大写字母之前排序.拉脱维亚字母恰恰相反.

即使是相同的语言,不同的应用程序也可能需要不同的排序顺序 例如,在德语词典中,"öf"将出现在"of"之前.在电话簿中情况恰恰相反.

由于政府法规或Unicode中的新字符/脚本,排序顺序可能会随时间而变化.