- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!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;
}