我有一個bizzaire問題,我查看了所有類似的問題,但仍然無法解決它。我正在使用JavaScript解碼MIME電子郵件,並且看到= C2 = A3,這意味着兩個字符0xC2和0xA2可以使UTF-8英國英鎊符號成爲可能。在JavaScript中顯示UTF-8生成的HTML(例如英鎊符號)
我已經在文檔中設置了meta charset = UTF-8,但它仍然不會在呈現的html文檔中顯示爲井號。頁面信息表示頁面呈現爲UTF-8 ...如果情況是這樣,爲什麼英鎊符號和nbsp顯示不正確?
我用下面的代碼串進行解碼:
s.replace(/=[\r\n]+/g, "").replace(/=[0-9A-F]{2}/gi, function(v) {
return String.fromCharCode(parseInt(v.substr(1), 16));
})
我用下面的代碼來解碼字符串s: 's.replace(/ = [0-9A-F] {2}/gi,函數(v)返回String.fromCharCode(parseInt(v.substr(1)= [\ r \ n] +/),16)); });' – user3780104 2015-02-11 13:08:00
是的,那太簡單了。字節'C2 A3' *一起*組成一個以UTF-8編碼的Unicode字符; 'String.fromCharCode'需要一個Unicode代碼點來生成一個字符。在一行中做兩個單獨的字節不會這樣做。在解碼此文本時,您需要了解UTF-8編碼細節,以確保將「= C2 = A3」解碼爲一個數字,並將其傳遞給String.fromCharCode。這可能是相當多的代碼,我希望有這樣的庫已經可用。 – deceze 2015-02-11 13:22:10
gotcha感謝您的幫助 - 您剛剛解決了幾天的工作! – user3780104 2015-02-11 13:29:23