Данные не добавляются в узел 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 или обоими. Решение состоит в том, чтобы сначала очистить ваш вклад.