【发布时间】:2011-04-11 03:27:05
【问题描述】:
我正在尝试使用 Node.js 从远程主机加载 XML 内容。
问题是像“ä”这样的德语“元音变音”被破坏了。就像在浏览器中一样,这通常是一个简单的编码问题。但由于远程主机上的 XML 内容是用 iso-8859-2 编码的”,我没有成功让这些字母恢复工作。
功能非常简单。我只是使用集成在 Node.js 中的默认 HTTP 客户端,通过简单的 get 请求连接到远程主机。
一些环境事实:
- 远程系统使用“iso-8859-2”编码。
- 当前在响应标头中设置了编码。
-
response.onData(chunk)收到的数据(块)中的字符不可恢复损坏
Node.js 在默认 Debian 服务器上运行 0.2 版。
代码基于 Node.js 文档中描述的默认 httpClient。
我尝试了以下方法:
response.defaultAsciiEncoding true/false
response.encoding = UFT-8/ascii
我使用 UTF-8 编码器/解码器对块进行编码/解码。失败后,我尝试对整个响应正文进行编码/解码。
我对使用缓冲区不是很熟悉,我想问题一定是在那个方向上。或者 Node.js(或 httpClient)在默认情况下根本无法处理其他编码类型,这是我的第二个猜测。在这种情况下,我需要使用我认为的 net lib 编写自己的 HTTP 客户端。我只是想确保我不会走错方向:)
【问题讨论】:
标签: xml encoding response httpclient node.js