Windows 콘솔에서 올바른 UTF-8 문자 인쇄
이 문서는 Windows 콘솔에서 UTF-8 문자를 인쇄하려고 할 때 직면하는 문제를 해결하는 것을 목표로 합니다. Windows 콘솔.
문제 설명
사용자가 특정 코드 조각을 사용하여 독일어 문자를 표시하는 데 어려움을 겪었습니다.
<code class="c++">#include <stdio.h> #include <windows.h> int main() { SetConsoleOutputCP(CP_UTF8); // German characters not appearing char const* text = "aäbcdefghijklmnoöpqrsßtuüvwxyz"; int len = MultiByteToWideChar(CP_UTF8, 0, text, -1, 0, 0); wchar_t *unicode_text = new wchar_t[len]; MultiByteToWideChar(CP_UTF8, 0, text, -1, unicode_text, len); wprintf(L"%s", unicode_text); }</code>
설정에도 불구하고 코드 페이지를 UTF-8로 출력하면 독일어 문자가 올바르게 인쇄되지 않습니다.
해결 방법
Windows 콘솔에서 유니코드 데이터를 올바르게 인쇄하려면 다음과 같은 몇 가지 방법을 사용할 수 있습니다.
문제 해결
세 번째 방법으로 잘못된 출력이 발생하는 경우:
<code class="c++">putc('2'); putc('0'); // doesn't work with CP_UTF8 puts("20"); // correctly writes UTF-8 data to Windows console with CP_UTF8 </code>
CP_UTF8 사용 시 콘솔 API가 별도의 호출로 전달된 데이터를 잘못된 인코딩으로 해석하기 때문입니다.
이 문제를 해결하려면 멀티바이트 문자 변환을 정확하게 처리하고 쓰기 간 변환 상태를 유지하는 streambuf 하위 클래스를 생성하는 것이 좋습니다.
위 내용은 Windows 콘솔에서 독일어 문자로 UTF-8 문자를 올바르게 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!