aoc*_*nas 5 javascript character-encoding node.js
我试图从nodejs 的网页抓取一些数据,但我遇到字符编码问题.该网页声明它的编码是:
<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)中看到的相同,但似乎没有任何工作正常.
你可以在这里看到整个代码https://gist.github.com/4110999.
我想我错过了关于编码如何工作的基本信息,所以任何有关如何使用正确字符获取数据的帮助都将受到赞赏.
编辑:
还尝试了node-iconv包,以防它是一个包问题.将第51行更改为:
var decoder = new Iconv_native('WINDOWS-1250', 'UTF-8');
var decoded = decoder.convert(body).toString();
Run Code Online (Sandbox Code Playgroud)
但仍然得到相同的结果.
我不熟悉 iconv-lite 包,但是查看它的代码,看起来您需要使用win1250而不是windows1250(请参阅此处)
编码以散列形式查找。
此外,自述文件使用此代码而不是“windows1251”:
str = iconv.decode(buf, 'win1251');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5120 次 |
| 最近记录: |