繁体   English   中英

Array.prototype.sort “[比较] UTF-16 代码单元顺序中的字符串”是什么意思?

[英]What does it mean that Array.prototype.sort “[compares] strings in UTF-16 code units order”?

我正在学习 Javascript 和https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort中的 Array.prototype.sort()没有传递comparaFunction参数,它会将值转换为字符串并以 UTF-16 代码单元顺序比较它们。

例如,

"2" > "15" => true

有人可以使用 UTF-16 代码单位向我解释这个陈述是如何正确的吗? UTF-8 代码单位是否不同? 我认为 UTF-X 只是编码器,并遵循 unicode - 代码单元(又名代码点)。 我的问题是为什么 MDN 说“UTF-16”?

字符串"2"是以下字符代码序列:

50

字符串"15"是:

49 53

比较字符串意味着顺序比较字符代码,当你得到第一个差异时停止(如果你到达两个字符串的末尾没有差异,则字符串相等)。 由于50 > 49 ,我们在第一个字符处停止并返回该比较的结果。

这些字符在 UTF-16 中的代码与在 UTF-8 中的代码相同(对于所有基本的 ASCII 字符都是如此),因此这些编码系统之间的差异与本示例无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM