2011-03-22 27 views

回答

27

爲了什麼?保存一個文件,使用NFC作爲網絡字符模型使用它(嚴格來說,W3C規範化強調這兩個流都在NFC中,並且當HTML或XML中的實體轉換爲它們所代表的字符時,它仍然處於NFC )。儘管可能會阻止一些令人尷尬的問題,使得某些人陷入困境,但它會帶來實際差異的可能性很小。

規範化使得某些等效序列導致相同流。例如,U + 0065(e)後跟U + 0301(一個組合尖銳重音)相當於U + 00E9(é)。

NFD分裂所有這樣的字符串成它們的組成部分(例如車削U + 00E9到U + 0065,隨後U + 0301)。如果連續有兩個或更多的組合字符,它們會根據給出一致性的規則重新排序(ḉ可以讓cedilla跟隨accute或accute跟隨cedilla,並且我們需要一致的順序來擁有產生相同的字符串)。大多數情況下NFD對於內部處理很有用,作爲另一項任務的一部分,例如剝離口音或生產NFC。

NFC開始與NFD,然後再組合在一起的人物在可能情況下,除了少數例外,以確保什麼標準化字符串使用Unicode的一個版本,將仍然如此。

NFKD比NFD彼此替換某些類似字符更進一步。 5例如被替換爲5.這「損害」文本(用戶可以合理地選擇5以上的5有一個很好的理由),但是對於搜索(在谷歌上搜索「魚」並且返回「魚」的結果是有用的,因爲它將long-s與short-s一樣對待),並在某些情況下作爲限制來避免具有類似但不同特徵的安全問題。 NKFC首先進行NFKD,然後以與NFC相同的方式進行組合。

http://unicode.org/reports/tr15/爲全瘦,和「使用NFC,但不擔心」重複簡短的回答。