pugi UTF8

这个博客介绍了如何利用PugiXML库创建一个`xml_string_writer`类,该类用于将XML数据写入到文件中。通过设置本地化和宽字符流,确保UTF-8编码的正确处理。`write`函数将ASCII字符串转换为Unicode并写入文件。最后,`xml_string_writer`的析构函数负责关闭文件流。
摘要由CSDN通过智能技术生成
    struct xml_string_writer : pugi::xml_writer
	{
	public:
		wofstream wfo;

		xml_string_writer(string file)
		{
			auto LocUtf8 = locale(locale(""), ::new codecvt_utf8<wchar_t>);
			wfo.open(file, ios::out);
			wfo.imbue(LocUtf8);
		}
		virtual void write(const void* data, size_t size)
		{
			wfo << AnsiToUnicode(string(static_cast<const char*>(data), size).c_str());
		}
		virtual ~xml_string_writer()
		{
			wfo.close();
		}
	};
	xml_string_writer writer(target_file);
	doc_.save(writer, "\t", pugi::format_indent, pugi::encoding_utf8);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值