Unicode・不可視文字解析
テキストに含まれる半角・全角スペース、NBSP、ゼロ幅スペース、改行コード(LF・CRLF・CR)などを可視化し、文字ごとのコードポイントと位置を表示するツールです。絵文字や結合文字の構成要素、NFC・NFD・NFKC・NFKDの正規化結果も確認でき、すべてブラウザ内で処理されます。
改行コードの違いを確認する場合は、貼り付けるかファイルを開いてください(入力欄上ではLFとして表示されますが、解析は元の改行コードで行います)。
- 見た目の文字数
- 0
- コードポイント数
- 0
- UTF-16単位数(JSのlength)
- 0
- UTF-8バイト数
- 0
- 不可視・特殊文字
- 0
- LF
- 0
- CRLF
- 0
- CR
- 0
可視化
テキストを入力すると、空白や不可視文字を可視化して表示します。
· は半角スペース、色付きの記号は不可視文字・特殊な空白・改行です。記号にカーソルを合わせるとコードポイントを確認できます。
使い方
- 調べたいテキストを入力欄に貼り付けます。
- 「可視化」で、不可視文字や特殊な空白、改行コードが色付きのラベルで表示されます。
- 「文字ごとの詳細」で、各文字のコードポイント・位置・種別を確認します。不可視文字だけに絞り込むこともできます。
- 「Unicode正規化」で、各正規化形式の結果と元の文字列との違いを確認し、必要に応じてコピーします。
このツールについて
見た目が同じ文字列なのに検索や入力チェックで一致しない場合、原因はNBSP(ノーブレークスペース)や全角スペース、ゼロ幅スペース、改行コードの違い、Unicode正規化の違いであることがよくあります。このツールでは、こうした目に見えない違いを文字単位で確認できます。
文字は「見た目の1文字」(書記素)ごとに区切って表示するため、絵文字がサロゲートペアの片割れに分かれることはありません。家族の絵文字や、濁点を結合文字で表した「か゛」のように複数のコードポイントで構成される文字は、その構成要素も表示します。
正規化の結果は確認・コピー用で、元の入力に自動で適用されることはありません。入力したテキストがサーバーへ送信されることもありません。
例えば「é」と、eの後ろに結合アクセントU+0301を付けた「é」は、どちらも見た目は1文字です。後者を入力するとコードポイントはU+0065とU+0301の2つになり、NFCの結果は「é」になります。検索で一致しない文字列の調査に使える例です。
通常の空白も可視化されますが、特殊文字数には半角スペースを含めません。特殊文字だけの表示では結合文字など複数のコードポイントからなる文字も残るため、表示された項目すべてが除去対象という意味ではありません。
よくある質問
「見た目の文字数」と「コードポイント数」が違うのはなぜですか?
絵文字の組み合わせや結合文字は、複数のコードポイントで1文字として表示されるためです。また、JavaScriptの length はUTF-16の単位数を数えるため、絵文字1文字が2になることがあります。
NFCとNFKCはどう違いますか?
NFCは見た目と意味が同じ文字を1つの形にそろえます。NFKCはさらに互換文字(全角英数字や半角カナ、丸数字など)も標準的な文字に変換するため、元の文字列から見た目が変わる場合があります。
すべての文字の名前を表示できますか?
初期版では、空白・改行・ゼロ幅文字・双方向制御文字など、問題になりやすい文字の名前だけを表示します。その他の文字はコードポイントで確認してください。