0

鉴于例如"à"(一个Unicode字符)也被编码为"\u0300a"(两个Unicode字符,即,结合抑音符(U + 0300),然后被一个),是有.NET的功能来规范化一个字符串,以便后者转换为前者?规格化Unicode字符串,以获取其规范表示

我相信前者被认为是规范表示法。我特别的问题是,我看过一些浏览器无法正确显示后者的情况,但这在其他情况下也可能有用。

回答

0

刚发现它,呃! String.Normalize

+2

好。但为防万一它可能很重要,“à”的分解形式不是U + 0300,后面是字母“a”,但这些字符的顺序相反。在Unicode中,组合变音标记遵循它们相关的字符。这与我们经常在欧式键盘上键入字符的方式不同(先按一个变音符的死键,然后是一个字母键 - 通常会产生一个预先组合的字符,即没有涉及组合变音符号)。你的观点是正确的,即预先制作的角色经常在输出上工作得更好。 – 2012-01-11 00:34:35

+0

感谢您的纠正,我很肯定这是相反的!你是对的,使用“死钥匙”的键盘输入可能导致我混淆命令。 – Clafou 2012-01-11 00:50:00

+1

另外,两者都没有被普遍认为是规范的;两者都是同样正确的Unicode字符串。尽管如此,一些特定的用例可能会考虑特定的形式。既然你提到浏览器,这表明你对网络感兴趣,并且W3C角色模型确实坚持NFC,所以你没有错,只是过于具体:) – 2012-01-12 01:19:57