經過《字符串的擴展》和《字符編碼的那些事》這兩篇文章的閱讀,大概了解js里codePointAt方法返回結果的含義。
var str='𠮷';
console.log(str.codePointAt(0))//輸出134071
那么這個134071到底是這么來的呢?我們可以根據這段話來理解。
在http://tool.chinaz.com/tools/unicode.aspx這個網站上可以將”𠮷“轉換成“\ud842\udfb7”。
1.將\u去掉就會得到d842和dfb7這兩個十六進制數字。
2根據上圖反推:
0xd800 + x =0xd842
x = 42 = 0001000010(十六進制轉二進制)
0xdc00 + y =0xdfb7
y = 3b7 =1110110111(十六進制轉二進制)
讓后將x和y拼接起來就是00010000101110110111,轉成十六進制后得到0x10bb7,然后
0x10bb7 + 0x10000 = 0x20bb7
再將結果轉成十進制就得到了 134071