2016-05-13 157 views
0

我在我的js文件中使用西里爾字,字符集是UTF-8,沒有BOM。 我怎樣才能得到我的第一個字符的unicode表的十六進制索引? 單詞「Абв」和結果必須返回十六進制代碼「0x0410」。將unicode轉換爲十六進制

我嘗試這樣的代碼,但它會返回錯誤的結果:

var code = "А".charCodeAt(0); 
var codeHex = code.toString(16).toUpperCase(); 
console.log(code, codeHex); 

回答

0

注意,在你的console.log(code, codeHex);你有兩個值codecodeHex之間沒有空格,所以你能看到一個貌似大值(1040410)。

所以分開是這樣的:

console.log(code, ' ', codeHex); 

,如果你想要一個漂亮的十六進制格式,這樣做:

console.log(code, ' ', '0x' + ('0000' + codeHex).substr(-4)); 

段:

var code = "А".charCodeAt(0); 
 
var codeHex = code.toString(16).toUpperCase(); 
 
document.write(code, ' ', '0x' + ('0000' + codeHex).substr(-4));

+0

那麼,當我在控制檯中輸入這段代碼時,它的工作非常完美。但是當我從我的文件中使用它時,它總是返回:「1056 0x0420」。 – Macedonian

+0

我改變了我的文件的字符集到ANSI,它的工作原理。但爲什麼它不適用於UTF-8? – Macedonian

+0

設置HTML文件的字符集:添加''並同時將其保存爲UTF-8編碼(檢查後字符仍然相同字符可能無法在交換機上存活)。 – trincot

相關問題