我需要用法语和西班牙语的名字和姓氏来解释差异。任何指针都表示赞赏。我进行了谷歌搜索但结果不尽如人意。
答案 0 :(得分:35)
以下是一些解释:
在这种情况下,您不考虑数字就对文本进行排序。事实上,数字只是“字母”,它们没有数字组合意义。
这意味着文本“ABC123”被分类为字母A,B,C,1,2和3,而不是A,B,C,然后是数字123.
这有一个令人遗憾的后果,即订购可能看起来的东西,就像他们应该按照数字顺序排序一样。
例如,在对这两个进行排序时:
ABC90
ABC100
您可能期望90之前的那个在100之前排序,因为90在100之前排序,但这不是词典排序的工作方式,它将9与1进行比较,然后将它们交换。
这是通过在100之前排序90来使上述排序正常工作的排序。如果在两个文本中遇到数字,则自然排序切换到文本的一部分的数字排序。
这个处理语言之间的差异。
通常,词典排序将一个字母与另一个字母进行比较,并通常根据字母的“值”确定其顺序。这会产生一些奇怪的效果。
例如,您认为如何订购以下两个字符串?
ABCTEN
ABCßEN
好吧,因为ß的字母可能有一个序数值(即Unicode字母表中的“地点”),其值高于T,上述顺序就是结果。基本上,如果您查看包含所有字母的Unicode图表,您可能会发现T的符号值小于100,并且ß大于100。
但是,在德国,您应该将上述两个文本视为:
ABCTEN
ABCSSEN
因此他们的顺序应该颠倒,因为S在T之前。
这是基于排序规则的排序。您为文本选择一个排序规则,用于描述应处理这些文本的上下文。这允许您以不同语言获得自然排序。
例如,在挪威,字母Æ,Ø和Å被排在Z之后,但是在其他语言中(我忘了哪个),Æ应该排在E之后,Ø仅在O和Å之后在A之后。整理决定了这一点。