Метод замены не работает для экранированного символа '\ xA0' в C # - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь заменить символ '\ xA0' в строке на пустой или в худшем случае пробел.Этот код компилируется и выполняется, но он не заменит символ nbsp пробелом.

string line = Stream.ReadLine();
line = line.Replace('\xA0', ' ');

Кто-нибудь знает альтернативное решение или возникла эта проблема??enter image description here

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Я нашел разумное решение этого вопроса.Поэтому я преобразую символ into в int (65533), поэтому я использую это значение и использую метод ToChar (), чтобы получить мой символ, а затем заменяю его использованием.

        string line = Stream.ReadLine();
        char SpecNBSPChar = Convert.ToChar(65533);
        line = line.Replace(SpecNBSPChar , ' ');

SpecNBSPChar Replace

После замены строки методом.Proof it worked

0 голосов
/ 13 июня 2018

Исходя из этой темы, можете ли вы попробовать?

line.Replace('\u00A0', ' ');

ОК, я пытаюсь восстановить себя здесь.Как насчет использования Regex?Например:

string text = " Ph0b0x � ";
string result = Regex.Replace(text, @"[^\x00-\x7F]+", "");
Console.WriteLine(text);
Console.WriteLine(result);
Console.ReadLine();

Мои результаты:

Ph0b0x �

Ph0b0x

Найден шаблон регулярного выражения здесь

...