2012-01-01 5 views
6

文字列をWindows-1251からUTF-8に変換する必要があります。Windows-1251からNode.jsのUTF-8への変換

私はiconvでこれを実行しようとしましたが、私が得るすべては、このようなものです:私が正しくドキュメントを読んでいる場合

пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ

var iconv = new Iconv('windows-1251', 'utf-8') 
title = iconv.convert(title).toString('utf-8') 
+0

可能重複[nodejs HTTPレスポンスのエンコーディング](http://stackoverflow.com/questions/5135450/nodejs-http-response-encoding)あなたのソリューションは、私のために働いた –

答えて

2

、あなたがする必要はありません結果にtoStringを呼び出します。 .convertで十分です:https://github.com/bnoordhuis/node-iconv

var iconv = new Iconv('windows-1251', 'utf-8') 
title = iconv.convert(title) 
12

ここで問題を解決する方法を示します。あなたはBufferを使い、文字列をバイナリに変換する必要があります。

request({ 
    uri: website_url, 
    method: 'GET', 
    encoding: 'binary' 
}, function (error, response, body) { 
     body = new Buffer(body, 'binary'); 
     conv = new iconv.Iconv('windows-1251', 'utf8'); 
     body = conv.convert(body).toString(); 
    } 
}); 
+0

+1。ありがとう。しかしiconvの代わりに私は[windows1251](https://www.npmjs.com/package/windows-1251)を使いました。 – Azevedo

関連する問題