異なるエンコーディングを理解するためにいくつか質問があります。C/C++エンコーディングの質問
文字列のデフォルトのエンコーディングは何ですか?
char ascii[]= "Some text"; // This is plain ASCII right?
wchar_t utf[] = L"Some Text"; // Is this UTF-16? Or ASCII stored in wchar_t's?
MessageBoxW(NULL, L"Hello", L"HI", MB_OK); // What encodings are the 2 strings in?
次に、UTF-8文字列を作成するにはどうすればよいですか? MessageBoxにUTF-8文字を表示したいのですか?
私の質問は主にWindowsで行われますが、異なるOSで異なる場合は、私が知りたいと思っています。
C++ x11は、UTF-8文字列リテラルの 'u8'プレフィックスを追加します。たとえば、' u8 "Hello World" 'ですが、C++コンパイラベンダーがC++ x11を採用するまで、UTF代わりに-8文字列を手動で入力します。例えば、コードページ65001で 'WideCharToMultiByte()'を使って実行時に、またはUTF-8オクテット値を含む 'char []'リテラルを使ってコンパイル時に実行します。 –