可能重复:
How do I remove diacritics (accents) from a string in .NET?
我们的项目在网页中生成一个字符串(Mērānāmanitinahai),当我们使用Regex.match函数读取它时,我们得到一个字符串,其中这些特殊字符被转换为某些浏览器代码,如\&#\ 257 (没有反斜杠)代替ā。所以我们想把它转换成'a'或'ā'。这样我们就可以在进一步的程序中使用它。 感谢
答案 0 :(得分:1)
我不确定我的方法是否完全正确,但它对我有用:
[编辑]
string first = @"Mērā nāma nitina hai";
first = System.Web.HttpUtility.HtmlDecode(first);
byte[] ansi = System.Text.Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding(1252), Encoding.Unicode.GetBytes(first));
string output = Encoding.Unicode.GetString(System.Text.Encoding.Convert(Encoding.GetEncoding(1252), Encoding.Unicode, ansi));
MessageBox.Show(output);
此代码的主要思想 - 您将字符串转换为ANSI并返回UNICODE。在这个行动之后,所有的变音符都消失了。
答案 1 :(得分:1)
这个怎么样:
var correctStr = HttpUtility.HtmlDecode(@"Mērā nāma nitina hai");
说明:ā
是html entity character,表示带有unicode代码257的特殊重音字符。
答案 2 :(得分:0)
您需要使用String.Normalize方法。