仕様と根拠
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 Supplement | 2026年10月29日 | 00E9 é は 0065 0301 と正準等価 |
| Unicode 18.0 コードチャート Alphabetic Presentation Forms | 2026年10月29日 | FB01 fi は互換分解で 0066 0069(fi) |
| Unicode 18.0 コードチャート Katakana | 2026年10月29日 | 30AC ガ は 30AB 3099 と正準等価 |
| Unicode 18.0 コードチャート Halfwidth and Fullwidth Forms | 2026年10月29日 | FF76 は narrow の 30AB・FF9E は narrow の 3099 |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 結合文字のまとまりの切り方は簡易的で、ハングルの字母や一部の複雑な並びでは、差分表の区切りが厳密でないことがあります。変換後の文章は文章全体を変換した正しい結果です。
- 正規化は文字の同一視であり、見た目の違い(全角と半角の幅など)をなくす処理ではありません。K 系は意味や書式が失われることがあります。
- ファイル名の正規化の違い(OS ごとの扱い)を再現する機能ではありません。
- 表のコードポイントは、文字の並びを U+ で表したものです。文字の名称は表示しません。
ご利用にあたって
- 入力した文章はブラウザの中だけで処理し、サーバーへは送信しません。ただし、コピーやダウンロードした結果の扱いにはご注意ください。
- K 系の正規化は丸囲み数字や半角カナなどの違いを消します。元の文章を残したうえで結果を使ってください。