0

javascript 文字列から新しいバッファ オブジェクトとして utf16le 文字列を作成しようとしています。

新しい Buffer('xxxxxxxxxx', utf16le) を設定すると、実際には期待される長さの 1/2 になるようです。たとえば、コンソール ログには 5 つの x しか表示されません。

var test = new Buffer('xxxxxxxxxx','utf16le');
for (var i=0;i<test.length;i++) {
        console.log(i+':'+String.fromCharCode(test[i]));
}

ノードのバージョンは v0.8.6

4

1 に答える 1

0

ここで何を達成したいのかは本当に不明です。あなたの声明は(少なくとも)2つのことを意味します:

  1. JS 文字列を UTF-16-LE バイト配列に変換する方法
  2. UTF-16-LE 文字列を含むバイト配列を JS 文字列に変換する方法

コード サンプルで行っているのは、UTF-16-LE として表される文字列のバイト配列を UTF-8 文字列にデコードし、それをバッファーとして格納することです。達成したいことを実際に述べるまでは、首尾一貫した答えが得られる可能性はゼロです。

new Buffer('FF', 'hex')オクテット セットのすべてのビットを含む長さ 1 のバッファを生成します。これは、おそらくあなたが思っていることの反対です。

于 2013-09-18T13:46:31.240 に答える