用途に応じたカウント単位の確認
文字数の数え方はプラットフォームやシステムごとに異なり,一律の基準は存在しません.まずは提出先や利用サービスが明示している規則に合わせることが基本です.基準が不明な場合は,各単位の数値を比較したうえで,実際の入力先でも制限を満たしているか確認してください.文字の判定基準には,人間が知覚する「見た目の文字数(書記素)」,1文字ごとの識別子である「Unicodeコードポイント」(一部のDBやAPI等で採用例あり),JavaScriptの標準仕様などに由来する「UTF-16コード単位」などがあります.
ZeroToolsでは目的に応じてこれらの単位を切り替えて確認できます.
単位の違いと具体例
具体例として「A😀 B」の末尾に改行(LF)を1つ加えた文字列を考えます.末尾にLFが1つあるため行数は2行となります.この文字列は「A」「😀」「半角空白」「B」「改行」で構成され,見た目の文字数(書記素)は5文字,Unicodeコードポイントも5個です.
しかし絵文字「😀」(U+1F600)はUTF-16でサロゲートペア(2コード単位)を消費するため6文字となり,UTF-8バイト数では「A」「 」「B」「\n」が各1バイト,絵文字が4バイトで計8バイトになります.
さらに基底文字「e」と結合記号(U+0301)の「é」,半角空白,4人の絵文字を3個のU+200D(ZWJ)で連結した家族の絵文字(7コードポイント),末尾改行(行数2)で構成される文字列では,見た目の文字数は4文字(書記素),Unicodeコードポイントは11個,UTF-16コード単位は15,UTF-8バイト数は30バイトとなります.提出先の仕様によって結果が分かれるため事前の照合が重要です.
空白・改行の除外と改行コード
提出条件パネルでは空白や改行の集計除外を個別に設定できます.空白除外を有効にすると半角・全角スペースやタブなどの改行以外の空白文字が除外され,改行除外を有効にするとLF改行が除外されます.入力された改行コード(CRLFやCR)はLF(\n)に統一されます.末尾に空行が2つ連続している「\n\n」がある場合,改行を含めると2カウント,改行除外時は0カウントとなります.
UTF-8バイト数と参考表示
UTF-8バイト数はブラウザのTextEncoderで実際にUTF-8へエンコードした本文の長さ(BOMなし・改行LF)です.ファイルヘッダーや通信データ量などの付加情報は含みません.また,全角/半角分類や原稿用紙換算(UTF-16総文字数を400で割った参考比率),空白・改行を除くUTF-16単位数は,目安としての参考表示です.
置換・コピー機能・通信について
固定文字列置換は完全一致(大文字小文字を区別)で行われ,正規表現には対応しません.置換後文字列では「$$」が「$」,「$&」が一致文字列に展開されます.コピー機能は入力本文のみをクリップボードに取得しますが,ブラウザの権限設定や環境によってコピーに失敗する場合があります.
入力テキストの自動保存機能はないため,ページの再読み込みや離脱で内容は消去されます.また,入力された本文テキストが集計処理のために外部へ送信されることはありませんが,ページ資産の読み込みやアクセス解析等に伴う通信が別途発生する場合があります.