1
誰能請解釋一下我爲什麼從U + 2126(Ω),並在相同的表示U + 03A9(Ω)結果和NFD正常化不會保留的代碼點?我只能預料到NFKD和NFKC(以及符號變音符號)的這種行爲。正常化不會保留碼點
result1 = unicodedata.normalize("NFD", u"\u2126")
result2 = unicodedata.normalize("NFD", u"\u03A9")
print("NFD: " + repr(result1))
print("NFD: " + repr(result2))
輸出:
NFD: u'\u03a9'
NFD: u'\u03a9'
謝謝,我已經標記爲[我的問題](http://stackoverflow.com/questions/33945665)爲重複。這解釋了爲什麼ICU標準化器按照其工作方式工作 - [詳情請參見參考](http://unicode.org/reports/tr15/#Primary_Exclusion_List_Table)。我仍然很難理解Unicode爲什麼這樣工作。希臘問號(U + 037E)*在語義上是否與分號(U + 003B)相同?或者另一個例子:U + 2000分解爲U + 2002。看起來它們都是同時添加的 - 那麼爲什麼在標準中包含U + 2000呢? – Zilk
感覺就像我瞭解的Unicode的越多,我知道的越少...我想我真正需要的是討論這樣的問題,比如一個郵件列表或新聞組或論壇的地方。到目前爲止,我還沒有找到一個。 – Zilk
語義相同?一點也不。這就是爲什麼兩個代碼點都存在的原因 - 如果你需要語義上的區別,你不應該規範化。但是,在許多情況下,這可以從上下文中確定,並且具有兩個視覺上相同的字符只會導致問題,所以Unicode標準爲它們提供了規範的等價物。 Unicode聯盟運行一個[郵件列表](http://unicode.org/consortium/distlist-unicode.html),你可能會發現有幫助。 –