Windows의 C에서 UTF-8 문자열 처리
문자열을 UTF-8로 인코딩하는 것은 크로스 플랫폼 애플리케이션에 널리 사용됩니다. 그러나 Windows에서 UTF-8 문자열을 std::cout으로 출력하는 것은 독특한 문제를 야기합니다.
Windows의 기본 동작은 std::cout이 비유니코드 형식의 문자열을 예상하는 것입니다. UTF-8 문자열이 표시되면 손상된 문자가 표시됩니다.
이 문제를 해결하려면 두 가지 주요 단계가 있습니다.
다음은 이러한 솔루션을 통합하는 수정된 코드 조각입니다.
<code class="cpp">#include <string> #include <iostream> #include <Windows.h> #include <cstdio> int main() { // Set console code page to UTF-8 SetConsoleOutputCP(CP_UTF8); // Enable buffering to prevent byte-by-byte transmission setvbuf(stdout, nullptr, _IOFBF, 1000); // Output UTF-8 string std::string test = u8"Greek: αβγδ; German: Übergrößenträger"; std::cout << test << std::endl; return 0; }</code>
추가로 이 단계에서는 Windows 콘솔의 래스터 글꼴이 ASCII가 아닌 유니코드 문자를 올바르게 표시하지 못할 수 있다는 점에 유의하세요. 적절한 렌더링을 활성화하려면 이제 Windows 10 이상 버전의 기본값인 트루타입 글꼴로 전환하는 것이 좋습니다.
위 내용은 Windows에서 UTF-8 문자열을 `std::cout`으로 올바르게 출력하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!