トップ 一覧 ping 検索 ヘルプ RSS ログイン

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

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!JavaScript UTF-8文字列のバイト数を得る
[文字化けの対処][JavaScript]

!参考
以下を参考に
*http://www.skyarc.co.jp/engineerblog/entry/javascript.html
*[encodeURI|https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Functions/encodeURI]


!例
 /*
  * 指定された文字列のバイト長(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;
 }