同僚に、「JavaのNormalizer.NFCとかって何?」と聞かれたので、 調べてみました。 ITproの櫻庭さんの解説が わかりやすいかも、と思ったんですが、
互換合成 Normalize Function Compativle Composite (NFKC)
とかって、スペルミスもあるし、そもそも原典と違うじゃん、 ということに気付いて。
- Normalization Form D (NFD) Canonical Decomposition
- Normalization Form C (NFC) Canonical Decomposition,followed by Canonical Composition
- Normalization Form KD (NFKD) Compatibility Decomposition
- Normalization Form KC (NFKC) Compatibility Decomposition,followed by Canonical Composition
Canonical Equivalent(正準等価性)が「か+゛」=「が」 Compatibility Equivalent(互換等価性)が「カ」=「カ」 なので、
- 「Canonical Decomposition」(正準分解)を「「が」→「か+゛」にすること」
- 「Canonical Composition」(正準合成)を「「か+゛」→「が」にすること」
- 「Compatibility Composition」(互換合成)を「「カ」を「カ」とすること」
と読めばいいのでは?
だから例えば、「NFKC」は、 「「カ」を「カ」としてから「か+゛」→「が」にすること」
気を付けたいのは、「Compatibility Composition」というのはない! ということですね。 だからよく読むと、各所にある日本語の解説は怪しいかも、です。
文字コード地獄秘話 第3話:後戻りの効かないUnicode正規化の解説が良さげです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|