Как преобразовать в символы клавиатуры - PullRequest
3 голосов
/ 03 февраля 2012

У меня есть текст, написанный разными странными символами, такими как ŸŞşȘș€ÀÈÉÌÒÓÙàèéìòóùºª«»€, и я пытаюсь преобразовать их в их нормальные эквиваленты, 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 Ответ

5 голосов
/ 03 февраля 2012

Если вам нужно просто удалить диакритические знаки у символов, я рекомендую вам взглянуть на этот пост , в котором описано, как это сделать.

Это не будет ничего делать с такими символами, как ºª«»€, но вы можете избавиться от них после удаления диакритических знаков с помощью простого регулярного выражения, если хотите:

var noDiac = RemoveDiacritics("ŸŞşȘș€ÀÈÉÌÒÓÙàèéìòóùºª«»€");
var cleanTxt = Regex.Replace(noDiac, "[^A-Z]", string.Empty, RegexOptions.IgnoreCase);
// outputs: YSsSsAEEIOOUaeeioou
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...