我正在尝试构建和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平台
答案 0 :(得分:2)
错误string is not in UTF-8
应该是不言自明的。 libxml2期望所有输入字符串(xmlChar *
)都以UTF-8编码。
如果添加XML 1.0中不允许的ASCII控制字符,则会发生错误xmlEscapeEntities : char out of range
,其中包括0到31之间的所有ASCII字符,但tab,换行符和回车符除外(0x09,0x0A,0x0D)。
对于XML 1.0中不允许的所有类型的字符,可能会出现错误invalid character value
。例如,ASCII控制字符,Unicode代理或其他无效的Unicode代码点。
因此,您添加的字符串包含无效的UTF-8,无效的ASCII控制字符或两者。解决方案是首先清理您的输入。