ファイルから読み取ったUnicodeのバイナリ配列を文字列へ変換する[JavaScript]
ファイルから読み取ったUnicodeのバイナリ配列を文字列へ変換する方法です。バイナリはJavascriptのUint8Array型で8ビット符号なし整数値の配列となります。
バイナリを文字列へ変換
Unicode(ユニコード)のバイナリは基本的にJavascriptでファイルを読み込む場合に使用すると思います。今後、そのようなWebアプリケーションが増えていくと思います。
関数を作りましたのでご参考にしてください。引数のPByteArrayにバイナリ配列を渡して戻り値が文字列となります。
function PByteArrayToUnicode(PByteArray) { var B; var i = 0; var len = PByteArray.length; var PWordArray = new Array(); if ((len % 2) != 0) { //throw 'It's broken'; // できるだけ読み込むようにする len--; } while (true) { B = PByteArray[i]; i++; PWordArray[PWordArray.length] = B << 8 | PByteArray[i]; if (i == len) break; i++; if (i == len) break; } return String.fromCharCode.apply(null, PWordArray); }
Unicodeの先頭の「0xFE」「0xFF」が必要なければ関数に渡す引数を「Uint8Array.slice(2)」にして先頭2バイトを削除して下さい。
また、Asciiで文字列を読み込む場合は次のコードで可能です。
String.fromCharCode.apply(null, PByeArray)
なお、日本語のSJIS、EUC、JISなどの文字コードの変換はJavascriptでは標準関数がありませんので自分で作る必要があります。
スポンサーリンク
関連記事
公開日:2015年12月27日
記事NO:01662