如何转换为键盘字符

时间:2012-02-03 14:56:45

标签: c# .net encoding

我有一个用各种怪异字符写的文字,比如ŸŞşȘș€ÀÈÉÌÒÓÙàèéìòóùºª«»€,我试图将它们转换为正常的等价物,SAEIOUaeiou等。我已经尝试了很多方法,但是我的结果好坏参半,有些是工作,有些则不然。这就是我到目前为止所做的:

byteArray1 = UnicodeEncoding.GetEncoding(1250).GetBytes(charArray);
byteArray2 = UnicodeEncoding.GetEncoding(852).GetBytes(charArray);
byteArray3 = UnicodeEncoding.GetEncoding(737).GetBytes(charArray);

resultArray1 = UTF7Encoding.GetEncoding(1250).GetChars(byteArray1);
resultArray2 = UTF7Encoding.GetEncoding(852).GetChars(byteArray2);
resultArray3 = UTF7Encoding.GetEncoding(737).GetChars(byteArray3); 

是否有一些简单而明显(我怀疑)我缺少的东西?另外,如果我的确做错了,请告诉我们。

1 个答案:

答案 0 :(得分:5)

如果您想要做的只是从字符中删除变音符号,我建议您查看this blog post,其中介绍了如何操作。

虽然对ºª«»€这样的字符没有任何作用,但如果你愿意,可以用简单的正则表达式删除变音符号之后删除它们:

var noDiac = RemoveDiacritics("ŸŞşȘș€ÀÈÉÌÒÓÙàèéìòóùºª«»€");
var cleanTxt = Regex.Replace(noDiac, "[^A-Z]", string.Empty, RegexOptions.IgnoreCase);
// outputs: YSsSsAEEIOOUaeeioou