我試圖打印出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_: 中日友好
問:
顯然我不應該分配CJK字符爲char *指針線-1,但我只是做了,而且線路輸出-3是正確的,那麼爲什麼?第3行中的printf()怎麼能給我非ascii字符?它以某種方式知道編碼嗎?
我假設第2行和第4行的代碼是正確的,但爲什麼我沒有得到任何第4行的輸出?
你使用什麼編譯器? GCC默認爲大多數平臺的Utf-8。似乎是一個編碼問題給我。 – cyco130
@ cyco130,是的,海灣合作委員會 – Alcott