C++로 뭔가를 하면서 파일을 읽어오는데
파일을 읽는 텍스트 안에 한글이 있을떄 처리하는 과정이 필요했다.
이를 보면서 파일의 인코딩들을 작업하는 내용도 있었는데 그 부분은 나중에 하고
한글같은 경우는 일반적인 string으로 데이터를 처리하지 못할것이다.
한글은 보통 2바이트로 처리해야 할것이고 C++에서는 이런 데이터를 처리하기 위해
wstring 클래스를 사용해야 하고 파일을 읽을때, ifstream이 아닌 wifstream을 이용한다고 한다.
그것을 그대로 사용해보면 아래와 같다.
디버깅해서 wstring에 들어가는 값을 보니... 다 깨져있다...
이를 어떻게 처리해야 할까... 싶다
2가지 방식이 있다.
wstringstream의 imbue 함수를 사용하는 방법과 locale의 global 변수를 사용해 적용하는 방식이 있다.
문제는 global로 적용했을때만 사용할 수 있었는데 다른 방법도 더 확인할 필요가 있다.
https://stackoverflow.com/questions/4775437/read-unicode-utf-8-file-into-wstring
https://trowind.tistory.com/61
'C , C++, C#' 카테고리의 다른 글
[Cmake] add_custom_target / .cmake file (0) | 2022.05.18 |
---|---|
[Cmake] 헤더 파일 Include 포함시키기 (0) | 2022.03.08 |
[C++] StackWalker64 / 스텍 추적 (0) | 2022.02.13 |
[C/C++] define으로 플랫폼 체크 (0) | 2022.01.13 |
[Cmake] Googletest setting Windows (0) | 2022.01.05 |