簡體   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