boost.property_tree中国語の文字化けし問題の読み取り
1490 ワード
最近突然このIDが懐かしくなって、探して帰ってきて、后で続々とその他のブログの文章を整理して帰ってきます
boostライブラリは使いやすいですが、新しいライブラリもあります.このboost.のように、ぶつかっています.property_treeのデフォルトでは、ワイド文字のサポートはあまり友好的ではありません.
検索して、何回かの試みを経て、良い案を見つけて、まずローカライズ符号化変換をする必要があります:
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);
}
}