例如,如果我使用這樣一個長的任意數字來顯示一個字符String.fromCharCode(123456454545789)
它會輸出這個字符獸
。在js中獲取高碼位字符的長數字代碼?
但是,當我嘗試檢索像這樣'獸'.charCodeAt(0);
相同字符的代碼時,它輸出此代碼20861
。
據我所知,charCodeAt
將始終返回小於65,536的值,因爲具有較高代碼點的字符由一對(較低值)的「替代」僞字符表示。
但是,當我嘗試通過增加索引'獸'.charCodeAt(1);
來獲得可能的第二個字符的代碼時,沒有其他代碼要返回。
如果我把相同的代碼放入,就像這個String.fromCharCode(20861)
它也會顯示相同的字符獸
。
我不知道爲什麼會發生這種情況,也許它甚至不會發生。但無論哪種方式,我的問題是 - 我怎麼能得到這個長期的任意數字?如果有多個可用於表示該字符的代碼,如123456454545789
或20861
對於任何這些較高代碼點字符,charCodeAt
的哪些替代/補充將告訴我前一個數字而不是後一個數字?
不確定,但是您是否知道123456454545789%65536是20861? – 2012-04-11 10:26:45