ホーム > カテゴリ > HTML5・JavaScript >

ファイルから読み取った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