C에서 cout을 사용하여 Windows 콘솔에 유니코드 문자를 출력하려고 할 때 , 이상한 문자가 대신 표시됩니다. 이런 문제가 발생하는 이유는 무엇이며, 유니코드 문자를 올바르게 표시할 수 있습니까?
이 문제는 유니코드 출력을 처리하지 않는 Windows 콘솔의 기본 동작으로 인해 발생합니다. 이 문제를 해결하려면 cout 대신 와이드 문자 출력 스트림 std::wcout을 사용할 수 있습니다.
#include <iostream> int main() { std::wcout << L"Hello World!" << std::endl; return 0; }
그러나 std::wcout을 사용하더라도 콘솔은 여전히 유니코드 출력을 처리하지 못할 수 있습니다. 이 문제를 해결하려면 콘솔을 수동으로 구성하면 됩니다.
콘솔을 수동으로 구성하려면:
또 다른 솔루션은 _setmode(_fileno(stdout), _O_U16TEXT);. 이 함수에는 fcntl.h 및 io.h가 포함되어야 하며 출력 스트림이 유니코드 문자를 처리할 수 있습니다.
위 내용은 C를 사용하여 Windows 콘솔에서 유니코드 문자를 올바르게 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!