printf("%s\n", multibytestring);
デフォルトでは、マルチバイト文字は???
コンソールのように表示されますが、どうすれば修正できますか?
printf("%s\n", multibytestring);
デフォルトでは、マルチバイト文字は???
コンソールのように表示されますが、どうすれば修正できますか?
これを試して:
wprintf("%s\n", multibytestring);
ワイド文字列には「%ls」が必要です。それはあなたが求めているものですか?
より完全な答えは次のとおりです。
UTF8文字が正しく表示されないことについて質問している場合は、おそらくプラットフォーム固有です(コンソールのコードページ/処理によって異なります)。UTF8をASCIIとして出力できるはずですが、ディスプレイはUTF8を正しく処理できる必要があり、適切なコードページまたはその他の環境設定を設定する必要がある場合があります(これについてはよくわかりません。アプリ/プラットフォーム固有だと思います) )。
私はWindowsを推測しています。つまり、ワイド文字ではなくマルチバイト文字を意味します。
_MBCS
それが定義されていることを確認してください。電話setlocale
してみてください_setmbcp
:
setlocale(LC_ALL, "japanese");
_setmbcp(_MB_CP_LOCALE);
その後、うまくいけばうまくいくはずです。