| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

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

提供: MyMemoWiki
2020年2月15日 (土) 07:33時点におけるPiroto (トーク | 投稿記録)による版 (ページの作成:「==JavaScript UTF-8文字列のバイト数を得る== [文字化けの対処][JavaScript] ====参考==== 以下を参考に *http://www.skyarc.co.jp/engineerblog/en…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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;
}