入出力データはサーバーに送信されず、どこにも保存されません。すべての処理はブラウザ上で完結します。

Unicode 正規化ツール (NFC / NFD / NFKC / NFKD)

NFC

0 文字 · 0 バイト (UTF-8)

NFD

0 文字 · 0 バイト (UTF-8)

NFKC

0 文字 · 0 バイト (UTF-8)

NFKD

0 文字 · 0 バイト (UTF-8)

使い方


結合文字・全角 ASCII・合字・互換文字などを含むテキストを入力すると、Unicode の 4 種の正規化形式(NFC・NFD・NFKC・NFKD)の結果が並列表示されます。コードポイント列と UTF-8 バイト数も確認できます。ファイル名比較・検索インデックス・データベース照合の問題のデバッグに役立ちます。

4 つの形式


Unicode は 4 つの正規化形式(UAX #15)を定義しています。「正準分解 vs 互換分解」と「分解後に合成するか」の 2 軸で異なります。

  • NFC(正準合成):分解後に正準合成。テキスト保存・比較のデフォルト。「が」は「が」のまま(1 コードポイント)。
  • NFD(正準分解):基底文字 + 結合マークに分解。「が」は「が」(「か」+ 結合濁点、2 コードポイント)になる。macOS HFS+ / APFS のファイル名形式。
  • NFKC(互換合成):NFC に加えて互換変種(全角 A → ASCII A、㈱ → (株) など)を畳み込む。検索・識別子比較に使う。
  • NFKD(互換分解):最も積極的。互換変種を畳み込み、かつ分解する。アクセント除去や大文字小文字無視検索に使う。

用途別の選び方


  • ユーザー入力の保存:NFC(最も短く、互換性が高い)
  • 検索インデックス:NFKC(「Café」「Cafe」「cafe」を同一視できる)
  • OS 間でのファイル名比較:両側を NFC に正規化してから比較
  • アクセント除去:NFKD で分解してから結合マーク(`\p{M}` 正規表現)を削除

安全性について


正規化はブラウザの標準 API(String.prototype.normalize())で行われます。テキストはサーバに一切送信されません。