1.環境
使用 VS2017 測試,實際上只要有支援到 std:locale 的編譯器即可(基本上都有支援)
再來專案設置使用unicode開發
//project->General->Character Set = > “Use Unicode Character Set”
2. 程式碼
//main.cpp
#include <iostream>
using namespace std;
//project->General->Character Set = > "Use Unicode Character Set"
int main (int argc,char *argv[])
{
locale::global(locale(""));
wcout.imbue(locale(""));
wcout << L"wcout << abcdefg" << endl;
wcout << L"wcout << 測試中文:一二三四" << endl;
//使用完畢時要呼叫下面兩行 ,才不會有 memory leak問題 <===重要
locale::global(locale("C"));
wcout.imbue(locale("C"));
//===== 無使用 std::locale 會發生終端機打印時卡住
wcout << L"wcout << abcdefg" << endl;
wcout << L"wcout << 測試中文:一二三四" << endl; //"測試中文:一二三四" can't printf
int x; cin >> x;
return 0;
}
3.Output
wcout << abcdefg
wcout << 測試中文:一二三四
wcout << abcdefg
wcout <<
4. Node
記得使用前呼叫
locale::global(locale(""));
wcout.imbue(locale(""));
使用後要再呼叫(不然會有 memory leak 發生哦)
locale::global(locale("C"));
wcout.imbue(locale("C"));