在获取请求时,变音符号被破坏了

时间:2014-04-16 20:23:14

标签: node.js http httprequest http-get diacritics

我试图查询以纯文本答案的网络服务。该文本通常包含德语umlauts。在收到的流中,变音符号被打破。有什么想法我做错了什么?

此致 托

以下是示例代码:

var request = require('request');        
var uri = <anUriWithUserId>;        
request(uri, {encoding: 'utf8','content-type': 'text/plain; charset=UTF-8'}, 
    function (error, response, body) 
    {
        console.log("encoding: " + response.headers['content-encoding']);
        console.log("type: " + response.headers['content-type']);
        console.log(body);
    }); 

回复:

encoding: undefined
type: text/plain

error=0
---
asin=
name=Eistee
detailname=Pfanner Der Gr�ne Tee, Zitrone - Kaktusfeige, 2,0 l
vendor=Hermann Pfanner Getr�nke GmbH, Lauterach, �sterreich
maincat=Getr�nke, Alkohol

1 个答案:

答案 0 :(得分:0)

在请求调用中设置encoding选项时,建议请求模块使用此编码对响应正文进行解码。通过这种方式,您可以忽略Web服务使用的编码,可能是也可能不是utf-8。你需要找出使用的编码是web服务并使用它。

根据网络服务的兼容性,您还可以尝试设置Accept-Charset: utf-8标题。

正如您的输出显示的那样,Web服务并没有在Content-Type标头中提供使用过的编码,这是一个糟糕的habbit imho。

旁注:内容编码不适用于charset,但对于压缩,gzip migh是它的有效值。