我试图打印出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