我试图查询以纯文本答案的网络服务。该文本通常包含德语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
答案 0 :(得分:0)
在请求调用中设置encoding
选项时,建议请求模块使用此编码对响应正文进行解码。通过这种方式,您可以忽略Web服务使用的编码,可能是也可能不是utf-8。你需要找出使用的编码是web服务并使用它。
根据网络服务的兼容性,您还可以尝试设置Accept-Charset: utf-8
标题。
正如您的输出显示的那样,Web服务并没有在Content-Type标头中提供使用过的编码,这是一个糟糕的habbit imho。
旁注:内容编码不适用于charset,但对于压缩,gzip migh是它的有效值。