実文字数 | length | ||
無視文字数 | 行数 |
バイト数 | |||||
---|---|---|---|---|---|
UTF-8 | UTF-16 | UCS-2 | |||
SJIS-win (MS932) | Shift_JIS | ||||
CP51932 | eucJP-win | EUC-JP | |||
JIS-ms | JIS | ISO-2022-JP |
文字数とバイト数を集計します。文字数はリアルタイムにカウントしますが、 各文字コードでのバイト数はボタンを押したときのみカウントします。
「実文字数」は実際の文字数です。「length」はJavaScriptのStringオブジェクト の持つlengthプロパティの値そのものです。両者はおおむね一致しますが、 サロゲートペアの文字(例えば「𠮷」)は、現在の主要ブラウザ (Chrome42, IE11, Firefox37: 2015/05/15現在)では2とカウントしてしまいます。
とはいえ、lengthプロパティの値をそのまま文字数チェックに使用しているサイトもまだ多数存在します。 そのようなサイトの入力欄の文字数制限内かを確認するために使用する際には、実文字数をカウントすることに価値がなくなるので、 実文字数とlengthプロパティの値の両方を表示するようにしました。
バイト数は、mb_convert_encodingで文字コードを変換した後のバイト数を表示しています。 各見出しはPHPの関数「mb_convert_encoding」の第2引数に指定するPHP特有の文字列です。
入力はUTF-8で受付け各文字コードに変換しようと試みますが、入力された文字によっては変換できない場合もあります。 その場合には正しいバイト数をカウントすることは不可能ですので、変換できない文字が含まれていた場合は「-」で表示します。
また、JIS系の文字コードではエスケープシーケンスを含んだバイト数になります。 よって文字種の切り替えが多いほどバイト数が多くなります。
文字数とバイト数、特にUTF-8の2バイト4バイト文字やUTF-16のサロゲートペアの確認を行いたかった為に作成しました。 類似の機能を提供しているサイトは沢山ありますが、バイト数の集計が あてにならないサイトが多かったためあらためて作ることにしました。
「髙﨑」はどちらも拡張文字で、JIS基本漢字の範囲ではありません。そのため、 Shift_JIS・EUC-JP・JISでは正しく変換できません(「?」に変換される)。
「JIS補助漢字・第三・第四水準漢字」になると、Unicode系の文字コードでしか表現できなくなります。 さらにサロゲートペアの文字「𠮷」になるとUCS-2では表現できないことが確認でき、 また、UTF-8・UTF-16ともに4バイトになる事も確認できます。
このページに関するちょっとした感想または、要望、バグ・間違いの指摘などは、下記の送信欄からお送りください。 質問・その他お問合せなど、返信をご希望の方は「こちらのページ」からメッセージをお送りください。
「このページはお役に立ちましたか?」のアンケートと自由メッセージのどちらか一方でかまいません (両方だとよりうれしいです)。お気軽にご利用ください (感想・どんな用途で使用したかなどをいただけると作成・運営の励みになります!)。