Как удалить недопустимые символы из файла в кодировке UTF-8?C#

Место общения программистов C#
Ответить
Anonymous
 Как удалить недопустимые символы из файла в кодировке UTF-8?

Сообщение Anonymous »

Объяснение:

При написании веб-приложения я столкнулся с крайним случаем. Я принимаю файлы UTF-8 для загрузки, и у меня есть проверка, подтверждающая, что они в кодировке UTF-8 (или, по крайней мере, лучшая возможная проверка, очевидно, не существует серебряной пули, я знаю, что их много). другие вопросы о переполнении стека по этой конкретной проблеме).

В качестве теста я взял файл в кодировке ANSI и преобразовал его в UTF-8 обоими способами (в отдельных тестах). конвертируя его в UTF-8 в Notepad++, а также просто декодируя его в UTF-8 (даже если это ANSI) на C# с помощью Encoding.UTF.GetBytes(inputStream).

В чем возникает проблема:

Позже я помещаю необработанные данные файла в качестве одного из элементов XML-файла. Вот здесь и возникает проблема. Похоже, что из файла ANSI сохранился символ, который (я предполагаю) недействителен в UTF-8. Когда я пытаюсь загрузить XML с помощью следующей команды...

Код: Выделить всё

XDocument xmlSample = XDocument.Load(outputPath);
Я получаю это исключение...

Код: Выделить всё

{"Invalid character in the given encoding. Line 10, position 14."}
В Visual Studio это выглядит так...

Изображение


И вот так в Notepad++...

Изображение


Ниже — это копирование и вставка символов.

Из NPP: ¡ Из средства просмотра строк Visual Studio: �
Вопрос:

Как удалить недопустимые символы из файла в кодировке UTF-8 или хотя бы обнаружить их в файле разумный способ, чтобы я мог отклонить файл?

Подробнее здесь: https://stackoverflow.com/questions/409 ... coded-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»