Данные не добавляются в узел xml? Получение ошибки: ошибка вывода: неверное значение символа

Я пытаюсь построить и XML и пытаюсь добавить большой кусок строки в узел XML. Я получаю три ошибки очень регулярно (не все три ошибки каждый раз). Вот три ошибки:

output error : string is not in UTF-8
xml escape entities char out of range
output error : invalid character value

В случае первых двух ошибок данные добавляются в узел xml, даже когда отображается ошибка. Но когда я получаю третью ошибку, output error : invalid character value строковые данные не добавляются в узел xml. Не знаю, где это идет не так.

Может кто-нибудь направить меня, чтобы решить вышеупомянутую проблему? Я использую библиотеку libxml2 и на платформе C

1 ответ

Ошибка string is not in UTF-8 должно быть само за себя. libxml2 ожидает все входные строки (xmlChar *) быть закодированным в UTF-8.

Ошибка xmlEscapeEntities : char out of range происходит, если вы добавляете символы управления ASCII, которые не разрешены в XML 1.0, который включает все символы ASCII от 0 до 31, кроме табуляции, перевода строки и возврата каретки (0x09, 0x0A, 0x0D).

Ошибка invalid character value может встречаться для всех видов символов, которые не разрешены в XML 1.0. Например, управляющие символы ASCII, суррогаты Unicode или другие недопустимые кодовые точки Unicode.

Таким образом, вы добавляете строки с недопустимым UTF-8, недопустимыми символами управления ASCII или обоими. Решение состоит в том, чтобы сначала очистить ваш вклад.

Другие вопросы по тегам