본문 바로가기

Programming/C&CPP

wcout, wprintf 등에서 한글 출력 안될 때 해결법

반응형

유니코드 프로젝트에서 wcout이나 wprintf를 사용했을 때 한글이 출력이 안되는 문제가 생길 때가 있습니다.

이럴 때 문제를 해결하기 위해서 setlocale() 함수를 사용하면 됩니다.

main 함수 등에서 다음과 같이 호출하면 됩니다.

setlocale(LC_ALL, "");

이렇게 하면 시스템의 로케일을 따라가기 때문에 한글 윈도우에서 정상적으로 한글이 출력됩니다.

""를 "korean"으로 변경하면 한글로 특정해서 호출할 수도 있습니다.

wcout에서 한글이 정상적으로 출력되지 않을 때 다음과 같은 방법으로 처리할 수도 있습니다.

std::wcout.imbue(std::locale(""));

이후에 wcout을 호출하게 되면 정상적으로 한글이 출력되는 것을 알 수 있습니다.

반응형