このコードを使用して単一の文字を出力できます。
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
main(){
setlocale(LC_CTYPE, "");
wchar_t a = L'Ö';
putwchar(a);
}
文字列を出力するようにコードを適応させるにはどうすればよいですか?
何かのようなもの
wchar_t *a = L"ÖÜÄöüä";
wprinf("%ls", a);
wprintf(L"%ls", str)
wchar_t
内部の s が何を意味するのかを知る必要があります。(ちょっとした議論については、こちらを参照してくださいmbstowcs
。) 基本的に、 /を介して環境と通信し、 (WCHAR_T との間で変換する) をwcstombs
介して既知のエンコーディングのデータと通信する必要があります。iconv
(ここでの例外は Windows で、環境と実際に意味のある通信を行うことはできませんが、ワイド バージョンでは Windows API 関数を使用して直接アクセスでき、ワイド文字列をメッセージ ボックスなどに直接書き込むことができます。)
とはいえ、内部ワイド文字列を取得したら、それを で環境のマルチバイト文字列に変換するか、変換を実行する をwcstombs
使用することができます。プログラムの最初にprintf("%ls", mywstr);
呼び出すことを忘れないでください。setlocale(LC_CTYPE, "")