Ваша проблема не является шестнадцатеричным символом (все в порядке). Ваша проблема - это символ, который не разрешен в XML. Шестнадцатеричное значение этого символа (все символы имеют шестнадцатеричное значение) дается в сообщении об ошибке, чтобы помочь вам выяснить, что это за символ, что особенно полезно, поскольку символы, которые запрещены в XML, обычно являются управляющими символами, не символами и несоответствующие суррогаты, которые все равно не являются печатными символами.
Другими словами, если вы видите это сообщение об ошибке, вы пытаетесь проанализировать что-то как XML, который не является XML.
Есть несколько причин, которые могут вызвать это:
- Ошибка в отправленном XML (это было означало быть XML, но это глючит).
- Вы только что подобрали не тот файл.
- Вы используете зашифрованный и / или сжатый файл перед расшифровкой и / или распаковкой.
- Вы обнаруживаете артефакты передачи, потому что читаете поток на неправильном уровне (довольно редко).
Первый случай может быть хуже, потому что он может быть вызван чьей-то ошибкой, и некоторые люди даже не верят, что в XML есть символы, запрещенные для таких вещей, как на самом деле не являющиеся символами, и они не исправят их беспорядок (га!). Иногда вы можете отфильтровать их мусор, но это всегда чревато.
Тот факт, что вы говорите о расшифровке в другом месте примера кода, заставляет меня подозревать случай 3: это зашифрованный XML, и вы еще не расшифровали его.
Это может быть сочетание того и другого, когда кто-то пытается упаковать необработанные зашифрованные октеты в формат XML. Это невозможно, но если вам нужно хранить зашифрованные октеты в формате XML, вы должны перекодировать эти октеты в XML-совместимый формат, такой как base-64 или шестнадцатеричный. Или же просто не используйте XML для этого вообще.