>백엔드 개발 >C++ >C를 사용하여 Windows 콘솔에서 유니코드 문자를 올바르게 표시하려면 어떻게 해야 합니까?

C를 사용하여 Windows 콘솔에서 유니코드 문자를 올바르게 표시하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-01 19:29:11532검색

How Can I Display Unicode Characters Correctly in the Windows Console Using C  ?

C를 사용하여 Windows 콘솔에서 유니코드 문자를 표시하는 방법

문제 요약

C에서 cout을 사용하여 Windows 콘솔에 유니코드 문자를 출력하려고 할 때 , 이상한 문자가 대신 표시됩니다. 이런 문제가 발생하는 이유는 무엇이며, 유니코드 문자를 올바르게 표시할 수 있습니까?

해결 방법

이 문제는 유니코드 출력을 처리하지 않는 Windows 콘솔의 기본 동작으로 인해 발생합니다. 이 문제를 해결하려면 cout 대신 와이드 문자 출력 스트림 std::wcout을 사용할 수 있습니다.

#include <iostream>

int main() {
    std::wcout << L"Hello World!" << std::endl;
    return 0;
}

그러나 std::wcout을 사용하더라도 콘솔은 여전히 ​​유니코드 출력을 처리하지 못할 수 있습니다. 이 문제를 해결하려면 콘솔을 수동으로 구성하면 됩니다.

수동 구성 옵션

콘솔을 수동으로 구성하려면:

  • /u와 함께 cmd를 실행하세요. 인수: 명령 프롬프트를 시작할 때 유니코드 지원을 활성화합니다.
  • chcp를 호출합니다. 65001: 이는 유니코드를 지원하도록 출력 형식을 변경합니다.
  • 콘솔에서 유니코드 글꼴 설정: Lucida Console Unicode와 같은 글꼴은 유니코드 문자에 대한 더 나은 지원을 제공합니다.

대체 솔루션

또 다른 솔루션은 _setmode(_fileno(stdout), _O_U16TEXT);. 이 함수에는 fcntl.h 및 io.h가 포함되어야 하며 출력 스트림이 유니코드 문자를 처리할 수 있습니다.

위 내용은 C를 사용하여 Windows 콘솔에서 유니코드 문자를 올바르게 표시하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.