利用boost做string到wstring转换,以及字符集转换 - Error - C++博客
#include <boost/locale.hpp>int _tmain(int argc, _TCHAR* argv[]){//std::locale::global(std::locale("utf-8"));std::locale::global(std::locale("")); // 设置全局的C运行库locale 可以针对cout fstream等单独设置 空表示默认使用当前系统字符集std::string strGbk = "天朝的方式开发刻录机卡洛斯分123qwerwer繫";std::wstring wstr = boost::locale::conv::to_utf<wchar_t>(strGbk, "gbk");std::string strA = boost::locale::conv::from_utf(wstr, "GBK");std::cout << strGbk.c_str() << std::endl;std::wcout << wstr.c_str() << std::endl;std::cout << strA.c_str() << std::endl;try{std::string strBit5;strBit5 = boost::locale::conv::between(strA, "big5", "gbk");strA = boost::locale::conv::between(strBit5, "GBK", "BIG5");}catch (std::exception& e){std::cout << e.what() << std::endl;}catch (...){std::cout << "..." << std::endl;}std::cout << __FUNCTION__ << std::endl;return 0;}