文字列のバイト数を求める


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows - - -
Macintosh - - - ×
UNIX - - - - - - - -
Dreamcast - - - - - - - - - - -

ポイント n = escape(text.charAt(i)); if (n.length < 4) count++; else count+=2;
説  明 文字列のバイト数を求めるには1文字ずつ抜き出しescape()を使ってエンコードします。エンコード結果は1バイト文字ならば3文字以内(%nnかCなどの文字になります)、日本語などの2バイト文字は4文字以上になります。エンコードされた文字列の長さを調べて4文字未満ならば1バイト、4文字以上ならば2バイトとしてカウンタを加算し、文字列の長さ分だけカウントします。
サンプル <html> <head> <title>文字列のバイト数を求める</title> </head> <body> <script language="JavaScript"><!-- function getByte(text) { count = 0; for (i=0; i<text.length; i++) { n = escape(text.charAt(i)); if (n.length < 4) count++; else count+=2; } return count; } str = "Abcサンプル"; alert("テキスト「"+str+"」のバイト数は"+getByte(str)+"バイトです"); // --></script> </body> </html>
補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA