wchar_t * 문자열을 인쇄하려고합니다. 코드는 아래에 간다 :char 대 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 * 포인터를 숯불에 CJK 문자를 할당해서는 안됩니다,하지만 난 단지 그것을했고, 라인의 출력 -3 맞아, 왜? 3 행의 printf()가 비 ASCII 문자를 어떻게 줄 수 있습니까? 어떻게 든 인코딩을 알고 있습니까?
라인 2와 라인 4의 코드가 맞다고 가정하지만, 왜 라인 4의 결과물을 얻지 못했을까요?
어떤 컴파일러를 사용하고 있습니까? GCC는 Utf-8 대부분의 플랫폼을 기본값으로 사용합니다. 나에게 인코딩 문제처럼 보입니다. – cyco130
@ cyco130, 예, gcc – Alcott