2

いくつかのコードをJavaからNode.jsに移植しようとしていますが、少し問題が発生しました。

Javaの文字列を考えると、のように見えるもの"645553dd"を使用して一連のバイトを抽出できます。ただし、Node.jsで同じことを行うのに苦労しています。バッファを使用して、同様のASCII文字セットに変換してみましたが、うまくいきませんでした。node-iconvを使用してみましたが、エラーが発生し続けました。Node.jsで同じバイトセットを取得するにはどうすればよいですか?.getBytes("ISO_8859_1"){ 54, 52, 53, 53, 53, 51, 100, 100 }EILSEQ, Illegal character sequence

4

1 に答える 1

4

バッファのデフォルトのエンコーディングからUTF-8に変換できるはずです:ISO-8859-1iconv

var Iconv  = require('iconv').Iconv;
var ic8859 = new Iconv('UTF-8', 'ISO-8859-1');

console.log( ic8859.convert(new Buffer('645553dd')) );

値は16進数で出力されることに注意してください- 0x64 == 100

<SlowBuffer 36 34 35 35 35 33 64 64>

それでもEILSEQエラーが発生する場合は、文字列にでサポートされていない文字コードが含まれていますISO-8859-1。これらの文字を翻訳するか無視する必要があります。

var ic8859 = new Iconv('UTF-8', 'ISO-8859-1//IGNORE');

または、 UTF-8などの別のエンコーディングを試してください。

console.log(new Buffer('645553dd'));
// <Buffer 36 34 35 35 35 33 64 64>
于 2012-08-21T03:27:21.370 に答える