Unicodeコードポイント可視化
文字・絵文字をグラフェムまたはコードポイント単位で分解し、U+XXXX・位置・構成要素を可視化する無料ツールです。見た目が同じでも別文字になる事故の切り分けに使えます。
何ができるか
入力文字列を分解し、表示・コードポイント列・位置(行/列/オフセット)を一覧化できます。
ZWJやVariation Selector、結合文字を備考で明示するため、絵文字や結合記号の解析に役立ちます。
例入力(ワンクリック)
総グラフェム数: 0
総コードポイント数: 0
ZWJ数: 0 / VS数: 0
一覧
解析結果はまだありません。
入力データは原則ブラウザ内で処理します。機密情報は入力しないでください。
使い方
- 入力欄にテキストや絵文字を貼り付けます。
- 分割単位をグラフェムまたはコードポイントで選びます。
- 可視化を実行し、一覧でU+XXXXと位置情報を確認します。
- 必要に応じてTSV/JSONをコピーして調査ログに使います。
判断基準
見た目の1文字単位で確認したい場合はグラフェム、内部実装や保存不整合の切り分けにはコードポイント表示を使うと、 文字化けや照合不一致の原因追跡がしやすくなります。
よくある失敗
- 見た目が同じ文字を同一と決め打ちし、結合文字差分を見落とす。
- ZWJ絵文字を1コードポイントと誤解して、文字数制限計算を誤る。
- 正規化前後の比較をせず、検索ヒット漏れの原因特定が遅れる。
境界条件
- Unicode文字名やスクリプト分類の完全辞書表示は行いません。
- 一般的にはフォント依存の見え方差まではこの表示だけで断定できません。
- 厳密な仕様確認はUnicode標準と利用プラットフォーム仕様を参照してください。
具体例
- 入力: `👩💻`。出力: 複数コードポイント + ZWJ構成として一覧表示。
- 入力: `é`。出力: `U+0065` と `U+0301` の結合文字構成を表示。
- 入力: `🇯🇵`。出力: 2つのRegional Indicatorで構成されることを表示。
注意・免責
- 分解結果はブラウザ・OS・フォント差で見え方が変わる可能性があります。
- Unicode文字名の確定表示は行わず、コードポイント中心で可視化します。
- 入力内容がURLクエリに含まれるため、共有時は公開してよいテキストのみ扱ってください。
失敗しやすい解析例
見た目同一なら同一文字と判断する
合成文字と分解文字でコードポイント列が異なる場合があります。
例: 入力例: é と é / 出力: 表示同じでもU+列が異なる
分割単位を目的に合わせず固定する
グラフェムとコードポイントで件数や位置が変わります。
例: 判断ポイント: UI表示事故はgrapheme、実装差分調査はcodepointを優先
境界値・例外ケース
ZWJ連結絵文字の解析
1見た目文字でも複数コードポイントとして分解されます。
例: 入力例: 👨👩👧👦 / 出力: ZWJを含む複数要素で表示
Intl.Segmenter未対応環境
grapheme選択時でもコードポイント近似で表示されます。
例: 判断ポイント: 警告表示時は厳密比較を他環境で再確認
よくあるミス
TSV/JSON出力を残さず目視だけで判断する
後で再現比較できず、調査がやり直しになります。
例: 運用例: チケットへTSVを添付して再現性を確保
位置情報の基準を共有しない
行/列とUTF-16オフセットを混同すると修正箇所がずれます。
例: 判断ポイント: 共有時に行列とオフセットの両方を記載
FAQ
文字数とコードポイント数が違うのはなぜ?
1つに見える文字でも、結合文字やZWJで複数コードポイントから構成される場合があるためです。
ZWJ(ゼロ幅接合子)って何ですか?
絵文字や文字同士を接合して1つの見た目にする制御文字です(U+200D)。
見た目が同じなのに別文字になることはありますか?
あります。全角半角差分、結合文字の有無、異体字セレクタなどで内部構成が異なることがあります。
TSVとJSONは何に使い分けるとよいですか?
表計算で並べ替えるならTSV、開発調査ログや再処理用途ならJSONが扱いやすいです。
基本FAQ
入力データは外部へ送信されますか?
原則として送信されません。入力内容はブラウザ内で処理します。例外がある場合は各ツールページ内に明記しています。
入力内容は自動保存されますか?
原則として自動保存しません。コピーやダウンロードで保存する場合は、ご利用端末内に保存されます。
関連ツール
現在の入力内容とあわせて確認しやすいツールです。