我想用nodejs從webpage中刮取一些數據,但是我遇到了字符編碼的問題。 該網頁指出它的編碼是: <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
當我用chrome瀏覽它時,它將編碼設置爲windows-1250,並且一切看起來都很好。由於對節點中的流沒有windows-1250編碼/解碼(而utf8不起作用),我發現了一個iconv-lite包,它應該能夠在不同的編碼之間輕鬆轉換。但在將響應保存到文件(或輸出到控制檯)後,我仍然收到錯誤的字符。我還嘗試了不同的編碼,本地節點緩衝區編碼,設置標題與我在Chrome中看到的相同(Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3
),但似乎沒有任何工作正確。使用node.js從windows-1250編碼的網頁獲取正確的字符串
你可以看到這裏https://gist.github.com/4110999整個代碼。
我想我缺少關於編碼如何工作的一些基本知識,所以如何獲得正確的字符數據的任何幫助將不勝感激。
編輯:
還試過node-iconv包,以防萬一它是包問題。將第51行更改爲:
var decoder = new Iconv_native('WINDOWS-1250', 'UTF-8');
var decoded = decoder.convert(body).toString();
但仍得到相同的結果。
您好,我還通過代碼去,似乎編碼被組織成同義詞1250 == win1250 == windows1250。無論如何我都嘗試過,它給出了相同的結果。 win1251也不起作用,結果是不同的,但非ASCII字符仍然是胡言亂語。 – aocenas