코드 :왜 wprintf가 유니 코드 합자를 두 개의 다른 글씨체로 분리합니까?
#include <stdio.h>
#include <wchar.h>
#define USE_W
int main()
{
#ifdef USE_W
const wchar_t *ae_utf16 = L"\x00E6 & ASCII text ae\n";
wprintf(ae_utf16);
#else
const char *ae_utf8 = "\xC3\xA6 & ASCII text ae\n";
printf(ae_utf8);
#endif
return 0;
}
출력 :
AE & ASCII 텍스트 AE
의 printf는 올바른 UTF-8로 출력을 생성하는 동안
:æ & ASCII 텍스트 AE를
이 테스트는 here입니다.
wprintf를 사용하기 전에 로케일 설정 요구 사항에 대한 정보를 제공해 주셔서 감사합니다. – user206334
이것은 Linux에서 작동합니다. Windows에서 로케일을 UTF-8 코드 페이지로 설정하려고하면 [실패합니다] (https://msdn.microsoft.com/en-us/library/x99tb11d.aspx). AFAICT,'wprintf'는 거기에 UTF-8 문자열을 인쇄하는 데 사용할 수 없습니다. [WriteConsole] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms687401 (v = vs.85) .aspx)이 필요합니다. – mgiuffrida