본문 바로가기
개발 저장소/C언어

boost property_tree UTF-8 출력 안되는 현상

by 팡삼이 2017. 5. 4.

! property_tree는 기본적으로 한글 출력이 안됩니다. 읽는 거는 locale("kor") 옵션을 주고, 

읽기가 가능하지만 쓰기에서는 locale("kor") 옵션을 준다고 해도 한글 출력이 안됩니다. 

json_parser_write.hpp 파일 내부를 보면 그 이유를 알수 있습니다.



vi /usr/include/boost/property_tree/detail/json_parser_write.hpp 


파일을 열어 아래 37번째줄을 추가해줍니다.




 30         while (b != e)

 31         {

 32             // This assumes an ASCII superset. But so does everything in PTree.

 33             // We escape everything outside ASCII, because this code can't

 34             // handle high unicode characters.

 35             if (*b == 0x20 || *b == 0x21 || (*b >= 0x23 && *b <= 0x2E) ||

 36                 (*b >= 0x30 && *b <= 0x5B) || (*b >= 0x5D && *b <= 0xFF)

 37                 || (*b >= -0x80 && *b < 0 ))            //add utf-8 이부분 추가

 38                 result += *b;




수정하고나서

컴파일 후 실행해보면 

잘 되는 것을 확인할 수 있습니다!!

'개발 저장소 > C언어' 카테고리의 다른 글

최호성의 C 프로그래밍》 PDF입니다  (51) 2016.02.16

댓글