제작 중인 프로젝트에 로그 저장을 ofstream을 이용해 출력하고 있습니다. 그런데 wofstream을 쓰는 것임에도 불구 하고 한글 출력이 안되더군요. 이리저리 구글링 통해 알아보니 locale 설정을 해야 한다고 합니다.
참고 : http://kaistizen.net/EE/index.php/weblog/comments/unicode_hangul_to_stdout/
#include <fstream> #include <iostream> #include <time.h> #include <tchar.h> using namespace std; void main() { locale::global(locale("kor")); wofstream m_Stream; // global을 쓰지 않고 특정 변수만 kor로 설정할 경우 imbue를 사용 //m_Stream.imbue( locale("kor") ); m_Stream.open( L"log.txt" ); char strBuildInfo[64]; time_t now; time( &now ); wcout << L"한글" << endl; strftime( strBuildInfo, 64, "Log Build : %Y/%m/%d ( %H:%M:%S )", localtime(&now)); m_Stream << strBuildInfo << endl; m_Stream << L"로그\n"; m_Stream.close(); }
출력 결과물. 정상적으로 한글이 출력된다.