string str1 = "%C3%A1"; string str2 = "a%CC%81"; //其实这2个字符串用UTF8解码后,都是“á”这个字符
他们显示起来可能是一样的,却不是同一个字符。 str2是一个‘组合字符(Combining Character)’,由一个基础字符,和一个‘非空格标记(non-spacing marks)’组成,因此它的字符数是2。 如果你要把他们当成一样,可以先替换后,再比较: str2 = str2.Replace("á", "á"); // 如果看不出区别,可以用下一行 str2 = str2.Replace("a\u0301", "\u00e1");
str2 = str2.Replace("á", "á"); // 如果看不出区别,可以用下一行 str2 = str2.Replace("a\u0301", "\u00e1");
用 Encoding Encoding ascii = Encoding.ASCII; Encoding unicode = Encoding.Unicode;
110,538
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧