0
鑑於例如"à"
(一個Unicode字符)也被編碼爲"\u0300a"
(兩個Unicode字符,即,結合抑音符(U + 0300),然後被一個),是有.NET的功能來規範化一個字符串,以便後者轉換爲前者?規格化Unicode字符串,以獲取其規範表示
我相信前者被認爲是規範表示法。我特別的問題是,我看過一些瀏覽器無法正確顯示後者的情況,但這在其他情況下也可能有用。
鑑於例如"à"
(一個Unicode字符)也被編碼爲"\u0300a"
(兩個Unicode字符,即,結合抑音符(U + 0300),然後被一個),是有.NET的功能來規範化一個字符串,以便後者轉換爲前者?規格化Unicode字符串,以獲取其規範表示
我相信前者被認爲是規範表示法。我特別的問題是,我看過一些瀏覽器無法正確顯示後者的情況,但這在其他情況下也可能有用。
剛發現它,呃! String.Normalize
好。但爲防萬一它可能很重要,「à」的分解形式不是U + 0300,後面是字母「a」,但這些字符的順序相反。在Unicode中,組合變音標記遵循它們相關的字符。這與我們經常在歐式鍵盤上鍵入字符的方式不同(先按一個變音符的死鍵,然後是一個字母鍵 - 通常會產生一個預先組合的字符,即沒有涉及組合變音符號)。你的觀點是正確的,即預先製作的角色經常在輸出上工作得更好。 – 2012-01-11 00:34:35
感謝您的糾正,我很肯定這是相反的!你是對的,使用「死鑰匙」的鍵盤輸入可能導致我混淆命令。 – Clafou 2012-01-11 00:50:00
另外,兩者都沒有被普遍認爲是規範的;兩者都是同樣正確的Unicode字符串。儘管如此,一些特定的用例可能會考慮特定的形式。既然你提到瀏覽器,這表明你對網絡感興趣,並且W3C角色模型確實堅持NFC,所以你沒有錯,只是過於具體:) – 2012-01-12 01:19:57