2014-04-16 2 views
0

일반 텍스트로 응답하는 웹 서비스를 쿼리하려고합니다. 텍스트에는 종종 독일어 umlauts이 있습니다. 수신 된 스트림에서 움라우트가 깨졌습니다. 어떤 아이디어가 내가 뭘 잘못하고 있니?요청을받을 때 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 옵션을 설정하면

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

'console.log ('üäö ');가 잘 작동하기 때문에 터미널이 아닙니다. – Torsten

+0

가능한 답변 : (http://stackoverflow.com/questions/16267274/how-to-get-utf-8- in-node-js) – PeterVC

+0

어쩌면 그냥 오타 일 수도 있지만'content-type'은 따옴표로 묶이지 않아야합니다 ... – Dunken

답변

0

, 당신은 조언

감사합니다, 스텐 여기

샘플 코드입니다 요청 모듈은이 인코딩을 사용하여 응답 본문을 디코딩합니다. 이런 식으로 웹 서비스에서 사용하는 인코딩을 무시합니다. utf-8 일 수도 있고 아닐 수도 있습니다. 당신은 인코딩이 webservice로 사용되고 그 것을 사용하는지 찾아야합니다.

웹 서비스의 복잡성 정도에 따라 Accept-Charset: utf-8 헤더를 설정할 수도 있습니다.

출력 결과에서 볼 수 있듯이 webservice는 잘못된 habbit imho 인 Content-Type 헤더에 사용 된 인코딩을 제공하지 않습니다.

사이드 코드 : Content-Encoding은 charset이 아니지만 압축의 경우 gzip migh가 유효한 값입니다.

관련 문제