wcoutを使ってアラビア語と中国語が混ざったメッセージを表示したいです。
次のコードは問題ありません。
#include <iostream>
using namespace std;
int main()
{
wcout.imbue(locale("chs"));
wcout << L"中文"; // OK
}
ただし、次のコードは機能しません。
#include <iostream>
using namespace std;
int main()
{
wcout.imbue(locale(/* What to place here ??? */));
wcout << L"أَبْجَدِيَّة عَرَبِيَّة中文"; // Output nothing. VC++ 2012 on Win7 x64
// Why does the main advantage of unicode not apply here?
}
ユニコードの採用後、コードページの概念は廃止されるべきだと思います。
Q1. wout がそのようなテキストを表示するメカニズムは何ですか?
Q2. Unicode ベースの OS である Windows が、コンソール ウィンドウでの Unicode 文字の出力をサポートしていないのはなぜですか?