Unicode正規化

文字列をNFC・NFD・NFKC・NFKDへ変換し、変換前後のコードポイントとUTF-8バイト数を確認します。

使い方

  1. 正規化する文字列を入力します。
  2. NFC・NFD・NFKC・NFKDから目的に合う形式を選びます。
  3. 変換前後の文字を確認して、結果をコピーまたはTXT保存します。

元の文字列

入力は保存・外部送信しません。最大100,000 UTF-16コード単位。

変換後

コードポイント(先頭64個まで)

変換前

変換後

このツールについて

検索や照合が一致しない文字列を調べるときに使います。NFCでは、e(U+0065)と結合アクセント(U+0301)がé(U+00E9)になります。日本語のカと結合濁点もガへ合成できます。

NFKCの例:① A ㎏ → 1 A kg。丸数字・全角・単位記号の区別が失われるため、氏名・識別子・数式などへ一括適用する前に結果を確認してください。

ブラウザーのString.normalize()を使用します。Unicodeデータの版はブラウザーに依存します。結果は最大1,800,000 UTF-16コード単位です。不正なサロゲートは変換せずエラーにします。

Unicode正規化の仕様(UAX #15)

入力例と結果の確認

見た目が似ている文字列の照合前に、結合文字をまとめるか、互換文字も変換するかを試します。

例を試すと入力と設定を置き換え、上のツールで処理します。「元の入力へ戻す」は直前の入力と設定を復元します。前回の処理結果は復元しないため、必要に応じて再実行してください。既存の保存ルールが適用されます。

複数の例を試した場合は、「元の入力へ戻す」を繰り返すと最初の入力へ戻れます。履歴はページ内だけで保持するため、閉じる前に必要な入力を復元してください。

結合アクセントをNFCでまとめる

入力と設定

Cafe + U+0301(結合アクセント)
形式: NFC

期待する結果

Café
コードポイント: 5 → 4
UTF-8: 6 → 5 バイト

丸数字と全角英字をNFKCで変換する

入力と設定

① A
形式: NFKC

期待する結果

1 A

結果の見方

NFCの例は見た目がほぼ同じでもコードポイント数とバイト数が減ります。NFKCの例では①の囲みとAの全角という区別が失われます。「変更なし」なら選んだ形式ではすでに正規化されています。

対応範囲と注意点

NFC/NFDは正準等価、NFKC/NFKDは互換等価も扱います。スペル修正、見た目の似た別文字の統一、不可視文字の一括除去ではありません。入力は100,000 UTF-16コード単位まで。不正サロゲートは拒否し、コードポイント表示は先頭64個までです。

検証根拠:既存normalize関数でNFCの合成・NFKCの互換変換・件数とUTF-8バイト数を確認し、ブラウザの出力と照合します。

次の作業に使えるツール

よくある質問

どの形式を選べばよいですか?

NFCは結合可能な文字を合成し、NFDは分解します。NFKC・NFKDは丸数字や全角文字などの互換表記も変えます。利用先の仕様がある場合は、その形式に合わせてください。

元の表記へ戻せますか?

互換正規化では①が1へ変わるなど、区別が失われます。変換後の文字列から元の表記は復元できません。元の文章は入力欄に残るため、必要なら別に保存してください。

文字コードや誤字も直せますか?

いいえ。Shift_JISなどの文字コード変換、誤字修正、すべての見た目が似た文字の統一は行いません。コードポイント数は見た目の文字数とも異なります。

関連ツール

入力と保存について

残したい内容は、先に保管してください。このツールの入力内容・結果は自動保存されません。ページの更新・終了や、入力を消す操作・リセットで失われる場合があります。

お気に入り・表示言語は作業データとは別に保存され、サイトデータの削除で失われる場合があります。端末に保存済みのファイルは、ツールのリセットやサイトデータの削除では消えません。

ツール・ゲームを探す

全120ツール・16ゲーム

全120ツール・16ゲーム

文章・文字 26

計算・変換 22

日付・時間 12

画像・PDF 26

データ・Web 28

抽選・便利 6

ゲーム 16