티스토리 뷰

MFC

[MFC] CStdioFile 사용 시, 한글 깨짐 현상 해결

개발하는꼬물이 2022. 1. 10. 17:34

TXT 파일에 Log를 저장하려고 하는데, 한글이 포함된 CString이 저장이 안되서 한참을 찾았다.. 

찾아보니 두가지 방법이 있는 것 같다. 

setlocale()을 사용하거나, 저장하려는 문서의 맨 앞에 BOM을 기록하거나.

BOM 기록 방식으로 해보려고 했는데 뭘 잘못한건지 나머지 문자들마저 한자로 나와서 몇번 시도해보다가 포기!   

 

1. setlocale() 사용 

   - m_file.Open(~ ) 코드 위에 setlocale(LC_ALL, "korean"); 을 추가

   - Header 추가 --> #include <locale.h>

 

2. BOM 설정 

  - Window개발 시 유니코드 문서일 경우 아래 BOM 추가 

  - UTF-16 : 0xFEFF (Big Endian)  /  0xFFFE (Little Endian)   

  - UTF-8 : 0xEFBBBF 

 

 

메모장 기준 ANSI 포맷으로 저장되야 한글 출력이 되는데 2번 방법은.. 모르겠다 ^-^! 

쉬운 setlocale 쓰세오.. 

댓글