C#中字符集的转换
本文关键字:转换 字符集 | 更新日期: 2023-09-27 17:54:46
可能重复:
如何在.NET中删除字符串中的变音符号(重音符号(?
我们的项目在网页中生成一个字符串(Mārānāma nitina hai(,当我们使用Regex.match函数读取它时,我们会得到一个字符串,其中这些特殊字符被转换为一些浏览器代码,如''''amp#''257(没有反斜杠(代替ā。所以我们想把它转换成"a"或"ā"。以便我们可以在进一步的程序中使用它。感谢
我不确定我的方法是否绝对正确,但它对我有效:
[EDIT]
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。在这个动作之后,所有变音符号都消失了。
这个怎么样:
var correctStr = HttpUtility.HtmlDecode(@"Mērā nāma nitina hai");
说明:ā
是一个html实体字符,表示unicode代码为257的特殊重音字符。
您需要使用String.Normalize方法。