01 / 例
例
名前 Café名前 Caféテキストとコード / MULTIVERTO
NFD は正準分解を行い、定義されている場合は合成済みの文字を基底文字と結合記号に分けます。ブラウザ内で変換します。
01 / 例
名前 Café名前 Café02 / ガイド
NFD は正準分解を行い、対応する合成済み文字を基底文字と結合記号に分けます。この変換は手元のブラウザーで実行されます。例の「名前 Café」は「名前 Café」になり、見た目が似ていてもコードポイントの並びは異なります。アクセントを調べる際に基底文字と記号を別々に確認できます。カーソルの移動や文字列長を扱う前に、表示された一文字とコードポイントの数が同じとは限らないことを理解してください。
Unicode 正規化には四つの形式があります。NFC と NFD は正準形式で、定義に応じて合成または分解しながら正準等価性を保ちます。NFKC と NFKD は互換性に基づく対応付けも適用し、全角ラテン文字や丸付き数字を通常の形に変えることがあります。この変換で、用途によって重要な違いが失われ得ます。C は再合成、D は分解を意味します。正規化後の結果は見た目が同じでも、コードポイント列は変わる場合があります。正規化は一部の厳密一致の比較や検索索引に有用ですが、システム全体で同じ形式を使う必要があります。万能なセキュリティーフィルターでも、言語間の翻字器でもありません。NFD は正準分解を行い、定義されている場合は合成済みの文字を基底文字と結合記号に分けます。短い合成済みの例に NFD を適用し、フォントの表示だけで判断せずコードポイントを確認してください。
この分解は正準分解であり、NFDを同じ結果にもう一度適用しても文字列はさらに変化しません。出力のコードポイント数は、人が認識する文字数とは一致しないことがあります。基底文字と結合アクセントが一つの書記素を形成できるためです。検索を成立させる目的だけで結合記号を削除しないでください。それは名前や言語によって影響が異なる、別の情報損失を伴う方針です。その判断はこのコンバーターの外で行ってください。
正規化は翻訳ではなく、文字の見た目をすべて揃える処理でもありません。NFD を使うと、正準分解の対象となるアクセント付き文字は基底文字と一つ以上の結合記号になります。表示はほとんど変わらなくても、文字列の長さや UTF-8 バイト列は変わり得ます。この違いはカーソル位置やバイト単位の比較を調べる際に役立ちます。NFD はアクセントを削除しません。結合記号を取り除くのは別の、元に戻せない処理です。NFD は互換文字の区別も保ちます。受け取り側のデータベースが NFC を求めるなら、画面上の見た目が同じでも NFD の結果をそのまま保存しないでください。
ガイドを探す