2015-10-05 10 views
7

にウムラウトをオンにします。Node.jsの要求は、私は、Webサービスに対して次の要求(要求/要求を使用して)やってる

'content-type': 'text; charset=Cp1252', 
'content-length': '1895980', 
vary: 'Accept-Encoding,User-Agent' 

私はまったくの幸運と日のためにこれをしようとしている:

これらはWebサービスが返信ヘッダです。私は間違って何をしていますか?

ここでは、これまでに私の問題を解決していなかった質問/回答のリストです:

それは、次のいずれかが、私の入力文字列がUTF-8でないことが原因となることができますか?

let hash = crypto.createHmac("sha256", this.options.Signer); 
this.query['Signature'] = hash.update(stringToSign).digest("base64"); 

署名者は0-9a-zA-Z+、及び/を含む文字列です。

this.query['Signature']はURLの一部です。

+0

あなたは送信している正確な文字は何ですか?現在どのようにエンコードされており、現在のキャラクタセットは何ですか? – zerkms

+0

ウムラウトが "まだ"ウムラウトであるところ。 – zerkms

+0

"ノードjs要求はウムラウトをturnsに変えます" "私が何をするにしても、ウムラウトはturnedに変わります。 ---これらのフレーズはどういう意味ですか? – zerkms

答えて

7

最後に、iconv-liteを使用してリクエストのエンコーディングをnullに設定し、本文をバッファとして返すようにしました。ここに私の現在の構成があります:

return request.getAsync({ 
     url, 
     encoding: null, 
     headers: { 
      "Accept": "text, text/plain, text/xml", 
      "Accept-Encoding": "UTF-8", 
      'Content-Type': "text/plain; charset=utf-8;", 
      "User-Agent": "me" 
     } 
    }).spread((res, body) => { 
     let a = iconv.decode(new Buffer(body), 'cp1252'); 
     // now a is holding a string with correct Umlauts and ß 
+0

http://www.utf8everywhere.org/ – zerkms

+1

関連:http://stackoverflow.com/questions/12040643/nodejs-encoding-using-request –

関連する問題