5

如果我要对两个字符串进行排序,cafe 和 cafe 是否有最佳实践来遵循哪个字母先出现?我在 javascript 中测试了 localeCompare,cafe 出现在 cafe 之前,但我不明白为什么。

4

2 回答 2

4

最佳做法是先不使用变音符号进行排序,即。咖啡馆先于咖啡馆。

localeCompare通过去除变音符号来工作,因此排序顺序不能反映真实的单词,因为café变成cafe

您可以在此处阅读有关 localeCompare 的更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

于 2013-07-03T18:01:32.433 回答
2

https://en.wikipedia.org/wiki/Collat​​ion

文本的排序方式取决于它是如何完成的。

一种传统是字符的“US-ASCII”表示,特别是在 C 编程语言中。当文本根据 ASCII 排序时,顺序仅取决于 ASCII 规范中每个字符的数值。有时这称为“C”语言环境。

现代软件通常应该使用合适的语言环境,以便按照人们期望的方式进行排序,而不管计算机使用的字符的数字表示形式如何。

另请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/localeCompare

于 2013-07-03T18:02:13.040 回答