私はwchar_t *文字列を出力しようとしています。 次のコードは行く:char vs wchar_t
#include <stdio.h>
#include <string.h>
#include <wchar.h>
char *ascii_ = "中日友好"; //line-1
wchar_t *wchar_ = L"中日友好"; //line-2
int main()
{
printf("ascii_: %s\n", ascii_); //line-3
wprintf(L"wchar_: %s\n", wchar_); //line-4
return 0;
}
//Output
ascii_: 中日友好
質問:
は、どうやら私はライン-1で*ポインタをcharにCJK文字を割り当てるべきではありませんが、私はちょうどそれをしなかった、とラインの出力-3は正しいです、なぜですか? 3行目のprintf()は私に非ASCII文字を与えることができますか?何とかエンコーディングを知っていますか?
2行目と4行目のコードは正しいと思いますが、なぜ4行目の出力が得られなかったのですか?
どのコンパイラを使用していますか? GCCのデフォルトは、ほとんどのプラットフォームでUtf-8です。私にエンコードの問題のようです。 – cyco130
@ cyco130、はい、gcc – Alcott