利用boost做string到wstring转换,以及字符集转换 - Error - C++博客

时间:2024-01-09 23:07:56

利用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;
}