仕様と根拠

4 つの形式

Unicode の UAX #15 は、NFD を正準分解、NFC を正準分解のあとに正準合成、NFKD を互換分解、NFKC を互換分解のあとに正準合成と定義しています(1.2・Table 1)。たとえば é(U+00E9)は NFD で e(U+0065)と結合アクセント(U+0301)に分かれ、NFC で再び 1 文字に戻ります。

互換分解の注意

K を含む形式(NFKC・NFKD)は、丸囲み数字、合字、半角カナ、全角英数字などを通常の文字に置き換えます。UAX #15 は、これらが書式の区別を消すため、任意の文章に盲目的に適用してはならないとしています。ツールは、K 系を選んだときに警告で知らせます。

差分の出し方

文章を「基本の文字 + それに続く結合文字・濁点」のまとまりに分け、まとまりごとに選んだ形式へ変換して、変わったものだけを位置とコードポイントつきで表にします。半角カナと半角の濁点はまとまりとして扱うので、ガ(U+FF76 U+FF9E)は NFKC でガ(U+30AC)になる様子が 1 行で見えます。

根拠にした仕様・資料

仕様・資料と確認日
仕様・資料確認日使った箇所
Unicode UAX #15 Unicode Normalization Forms(Rev 58・2026-08-12)2026年10月29日1.2・Table 1(4 形式の定義)・K 系を盲目的に適用しない注意・Table 8(半角カ + 半角濁点)
Unicode 18.0 コードチャート Latin-1 Supplement2026年10月29日00E9 é は 0065 0301 と正準等価
Unicode 18.0 コードチャート Alphabetic Presentation Forms2026年10月29日FB01 fi は互換分解で 0066 0069(fi)
Unicode 18.0 コードチャート Katakana2026年10月29日30AC ガ は 30AB 3099 と正準等価
Unicode 18.0 コードチャート Halfwidth and Fullwidth Forms2026年10月29日FF76 は narrow の 30AB・FF9E は narrow の 3099

指摘の段階

入力の扱い(送信しない仕組み)

処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。

このツールでできないこと(制約)

ご利用にあたって

  • 入力した文章はブラウザの中だけで処理し、サーバーへは送信しません。ただし、コピーやダウンロードした結果の扱いにはご注意ください。
  • K 系の正規化は丸囲み数字や半角カナなどの違いを消します。元の文章を残したうえで結果を使ってください。