简而言之,如果您的应用程序是多语言的并且在同一个表中存储多种语言,那么您大多会被搞砸,并且应该担心在数据库之外进行排序/整理 - utf8_general_ci 与其他任何语言一样好。
如果它只支持一种语言,您可以通过在数据库级别设置正确的排序规则来做得很好——在您的情况下,确实是 utf8_danish_ci,因为如果维基百科可以参考,它与挪威语相同。
如果您想了解更多关于整理的信息,ICU 文档有丰富多彩的例子来说明这种东西是多么棘手。广泛引用:
http://userguide.icu-project.org/collation
[H] 以下是语言在字符串排序方面的一些不同方式:
字母 AZ 可以按与英文不同的顺序排序。例如,在立陶宛语中,“y”在“i”和“k”之间排序。
字母的组合可以被视为一个字母。例如,在传统西班牙语中,“ch”被视为单个字母,并在“c”和“d”之间排序。
重音字母可以被视为非重音字母的次要变体。例如,“é”可以被视为等同于“e”。
重音字母可以被视为不同的字母。例如,丹麦语中的“Å”被视为排在“Z”之后的单独字母。
在一种语言中被认为是不同的非重音字母在另一种语言中可能是模糊的。例如,字母“v”和“w”根据英语是两个不同的字母。但是,“v”和“w”在瑞典语中被认为是同一个字母的变体形式。
一个字母可以被视为两个字母。例如,在传统德语中,比较“ä”就好像它是“ae”。
泰语要求某些字母的顺序颠倒。
法语要求在字符串末尾使用重音符号排序的字母排在字符串开头的重音符号之前。例如,单词“côte”排在“coté”之前,因为最后“e”上的重音比“o”上的抑扬符更重要。
有时小写字母排在大写字母之前。在其他情况下需要相反。例如,在英文中,小写字母通常排在大写字母之前。拉脱维亚字母正好相反。
即使使用相同的语言,不同的应用程序也可能需要不同的排序顺序。例如,在德语词典中,“öf”会出现在“of”之前。在电话簿中,情况正好相反。
由于政府法规或 Unicode 中的新字符/脚本,排序顺序可能会随着时间而改变。