Unicode / 正規化判断ガイド
Unicode正規化で変えてよい文字・残す識別子を判断する
表示だけをそろえる変換と、識別子を変えてしまう変換を分けます。変換前後を確認し、入力の所有者が許可した場合だけ変更します。
Unicode / 正規化判断ガイド
表示だけをそろえる変換と、識別子を変えてしまう変換を分けます。変換前後を確認し、入力の所有者が許可した場合だけ変更します。
| 例 | 変換前 | 形式 | 変換後 | 判断 |
|---|---|---|---|---|
| 表示用の全角 | ABC123 | NFKC | ABC123 | 許可があれば変更 |
| 互換文字 | ①Å | NFKC | 1Å | 要確認 |
| 結合文字 | é | NFC | é | 表示用なら候補 |
| 識別子 | A-123 | NFKC | A-123 | 原文を保持 |
正規化形式だけでは安全性は決まりません。用途と入力仕様の所有者を確認します。
fullwidth.txt、compatibility.txt、combining.txt、identifier.txtを読み、expected.csvの変換前後と判断を照合します。実データを送信したり、元の識別子を上書きしたりしません。
const display = text.normalize("NFC");
const compatibility = text.normalize("NFKC");
// Keep the original when it is an identifier.このガイドはブラウザー内の静的資料です。文字列や入力内容を外部へ送信しません。
正規化で検索しやすくなる場合でも、識別子の同一性が保たれるとは限りません。元の値と表示用の値を別に持ち、所有者が変更を許可していない限り原文をキーとして使います。