トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

JavaScript UTF-8文字列のバイト数を得る



目次



記事一覧

キーワード

JavaScript UTF-8文字列のバイト数を得る

[文字化けの対処][JavaScript]

参考

以下を参考に


/*
 * 指定された文字列のバイト長(UTF-8)を得る
 */
function getBytes(str) {
    // URLエンコードされる文字列
    var ESCAPECHAR = ";,/?:@&=+$ ";
    // URLエンコードされたUTF-8文字列表現の桁数とバイト数の対応テーブル
    // encodeURI("あ") → "%E3%81%82" (9桁) → 3バイト
    var ESCAPEDLEN_TABLE = [ 0, 1, 1, 1, 2, 3, 2, 3, 4, 3 ];
    var size = 0;
    if (str == null || str == "") {
        return size;
    }
    for (var i=0; i<str.length; i++) {
        var c = str.charAt(i);
        if (ESCAPECHAR.indexOf(c) >= 0) {
            size++;
        } else {
            size += ESCAPEDLEN_TABLE[encodeURI(c).length];
        }
    }
    return size;
}



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto

Copyright© 矢木 浩人 All Rights Reserved.