C#中字符集的转换

时间:2011-05-02 13:14:53

标签: c# unicode

  

可能重复:
  How do I remove diacritics (accents) from a string in .NET?

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

3 个答案:

答案 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方法。