背景
由于当前项目以xml文件作为通信媒介,故需要对xml文档进行解析与生成。但是libxml2文档写得不是很好,也没有例程,我在实际工作中主要参考C++的XML编程经验――LIBXML2库使用指南,这篇博文讲得很详细,我在这里只是做出一点补充。
1. 中文问题
xml文档使用UTF-8编码,所以如果xml文档中包含中文,使用libxml2读取内容相关API时,在调试界面中看到读取出来的中文内容为乱码,这个时候就需要将内容转换为程序当前运行的编码格式。我使用visual studio2017,里面默认GBK编码,所以我在使用xml内容时就需要将UTF-8编码的内容转换为GBK,其他同理。
1.1 举例说明
我使用GLib2的g_locale_from_utf8将内容转换为本地程序默认的编码格式,在写入xml内容时使用g_locale_to_utf8将内容转换为UTF-8.
1.2 总结
总而言之,在读取xml相关内容时,首先将内容转换为程序默认的编码格式,写入xml内容时,将程序默认的编码格式转换为UTF-8。