boost.property_tree读取中文乱码问题

最近突然怀念这个ID了,就找回来了,以后陆续把其他博客文章整理回来

 

boost库很好用,不过有些库比较新,用起来磕磕碰碰的,比如这个boost.property_tree默认情况下对宽字符支持不怎么友好

搜了一下,经过几次尝试,找到了好的方案,需要先做一次本地化编码转换:

 

#include "boost/program_options/detail/utf8_codecvt_facet.hpp"
 
int test()
{
    std::wifstream f(L"测试.xml");
    std::locale utf8Locale(std::locale(),new boost::program_options::detail::utf8_codecvt_facet());
    f.imbue(utf8Locale);
     
    if(f)
    {
        boost::property_tree::read_xml(f,pt);
        std::wstring text = pt.get(L"test",L"");
        MessageBox(NULL,text.c_str(),L"",MB_OK);
    }
}

转载于:https://www.cnblogs.com/wuyaSama/archive/2012/04/25/2470284.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值