libxml2使用心得

背景

由于当前项目以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。

2. 设置文档编码问题