C#中字符集的转换

本文关键字:转换 字符集 | 更新日期: 2023-09-27 17:54:46

可能重复:
如何在.NET中删除字符串中的变音符号(重音符号(?

我们的项目在网页中生成一个字符串(Mārānāma nitina hai(,当我们使用Regex.match函数读取它时,我们会得到一个字符串,其中这些特殊字符被转换为一些浏览器代码,如''''amp#''257(没有反斜杠(代替ā。所以我们想把它转换成"a"或"ā"。以便我们可以在进一步的程序中使用它。感谢

C#中字符集的转换

我不确定我的方法是否绝对正确,但它对我有效:

[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方法。