7
유니 코드로 작성된 콘솔 응용 프로그램 (C++ 및 Visual Studio 2008 사용)에서이 간단한 출력을 수행하고 있습니다. 이 코드는 Windows에서 실행됩니다.콘솔 응용 프로그램에서 유니 코드 문자가있는 _tprintf
_tprintf(L"Some sample string\n");
모든 것이 잘 작동합니다. 내가 거기에 비 ASCII 문자를 추가한다면 :
이일부 샘플
내가 무슨 일을하고있는 중이 야 :
콘솔에 출력을 얻는 것을_tprintf(L"Some sample € string\n");
는 그 문자까지 모든입니다 이리?
콘솔이 해당 문자를 표시 할 수 없기 때문입니다. 유니 코드에서 8 비트 코드 페이지로의 변환이 실패하고 문자열을 자릅니다. 콘솔의 기본 코드 페이지는 일반적으로 유럽의 새로운 통화를 채택하기 전에 설계된 기존 IBM PC 코드 페이지 인 437입니다. SetConsoleOutputCP() 문자가있는 다른 인코딩으로 콘솔을 전환해야합니다. –
나는 그 호출 전에'SetConsoleOutputCP (1200);'호출을 시도했지만 아무 것도 변경되지 않았다. – ahmd0
'_setmode (_fileno (stdout), _O_WTEXT);'시도해보십시오 – Cubbi