У меня есть данные XML, которые находятся в следующем формате. Мое приложение должно читать это с помощью XMLReader и выполнять некоторую обработку. Однако для этого мне нужно удалить или заменить первую часть каждой строки, в частности, <���
.Как удалить символы не-ascii из данных XML
<���<XML>....data....</XML>
<���<XML>....data....</XML
<���<XML>....data....</XML>
and so on...
Я пробовал следующее, посмотрев на некоторые сообщения в формате SO, но пока ничего не добился. Любая помощь будет оценена!
private static Regex _invalidXMLChars = new Regex(
@"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]",
RegexOptions.Compiled);
static string ReplaceHexadecimalSymbols(string txt)
{
return _invalidXMLChars.Replace(txt, string.Empty);
}
Примечание: Я взял мои данные XML, который находится в формате .txt и пытался вызвать функцию в каждой строке, но это не сработало .. персонажи были все еще там после вызова функции.
Что вы получаете, когда читаете файл с кодировкой UTF8? Похоже на [проблема XY] (http://www.perlmonks.org/?node=XY+Problem) – EZI
То же самое, символы все еще там @EZI –
Если вы читаете байты файла, какие байты вы видите на позиции этих персонажей? – cubrr