Удалить не ascii символы удаляет китайские иероглифы
Я использую следующее регулярное выражение для удаления не ascii из строки:
Regex.Replace(item, @"[^\u0020-\u007E]", string.Empty);
Я столкнулся с проблемой при разборе китайской строки. Он полностью удаляет все символы, которые мне не нужны. Есть ли что-нибудь вокруг этого?
Что я уже пробовал:
Я попробовал следующее
Regex.Replace(item, @"[^\u0020-\u007E]", string.Empty);
Tomas Takac
Что именно является вашим требованием? Китайские иероглифы не являются ASCII, поэтому часть "удаление не-ascii символов" работает так, как задумано. Если вы хотите удалить все символы, которые не являются буквами или цифрами, посмотрите на Char.Метод IsLetterOrDigit.
Jochen Arndt
Если у вас есть строка, содержащая только китайские иероглифы, она, конечно же, удалит все из них, что приведет к пустой строке.
Member 4336594
Я столкнулся с проблемой, используя веб-сервис, и строка, которую я передал ему, содержала символ, отличный от ascii, и потерпела неудачу. Чтобы обойти это, я удалил все символы, отличные от ascii. Требование состоит в том, чтобы все еще иметь возможность обрабатывать другие языки, которых это не будет. Оригинальный персонаж выглядел как буква " т " без хвоста (простите меня за плохое описание).