我有一个用各种奇怪字符写的文本,比如 ŸŞşȘș€ÀÈÉÌÒÓÙàèéìòóùºª«»€,我正在尝试将它们转换为正常的等价物,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);

是否有一些简单而明显的(我怀疑)我遗漏了?另外,如果我做的事情真的是错误的,请告诉我。

最佳答案

如果您只想从字符中删除变音符号,我建议您查看 this blog post ,它描述了如何执行此操作。

它不会对诸如 ºª«»€ 之类的字符做任何事情,但是如果您愿意,可以在使用简单的正则表达式删除变音符号后删除这些字符:

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

关于c# - 如何转换为键盘字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9130633/

10-12 12:44
查看更多