libxml 라이브러리 인코딩에 관련된 궁금증입니다.
회사에서 libxml2를 사용을 합니다.
그런데 .. libxml2를 사용하는 과정에서 이상한 버그가 하나가 나왔습니다.
어떻게든 해결해보려고 했는데 .. 저 혼자의 힘으로는 힘들어서 이렇게 질문 올립니다.
문제 상황 :
1. libxml을 라이브러리의 xmlNewProp 함수를 사용해서 한글 데이터를 써넣고 xmlSaveFormatFile로 저장하면 한글 그대로 xml파일에 들어가는게 아니라, 그 한글의 UTF-16 코드가 들어가던데.. 원래 이렇게 변환 되어서 들어가는것인가요 ? 원래 변환이 되어서 들어가는 것이라면.. 어느 부분에서 변환이 되어서 들어가게 되는지요 ?
2. 회사 제품의 기능중에 특정 파일에 들어있는 데이터를 그대로 xml 파일에 써넣는 기능이 있습니다. 그써런데 여기서 그 특정 파일의 인코딩이 UTF-8이 이 아닌 EUC-KR이고 파일에 한글이 2자 이상 포함되어 있으면, xml 파일을 저장할 때, xmlSaveFormatFile 함수를 사용하면 에러를 반환합니다.(파일 인코딩이 UTF-8이라면 1번 상황과 똑같이 UTF-16의 문자코드가 들어갑니다.)
문제는 한글이 다음과 같이 1자만 있을 때 "aasdfsadfas활" 이게 EUC-KR 문자코드로 그대로 들어가는 것입니다. 그래서 저희가 xml을 파싱해서 웹으로 뿌려줄때 이 euc-kr 때문에 글자가 깨져서 나오는 버그가 발생합니다. 여기서 궁금한 점은.. xml 파일을 저장할 때 현재 xml 파일이 사용하는 인코딩과 다른 인코딩을 사용하면 원래 이렇게 에러를 뿌려주는 것인지.. 이 부분이 궁금합니다. 그리고 한글이 1자 일 때는 왜 정상처리되어 EUC-KR 인코딩 데이터가 그대로 들어가는지도 궁금하구요 ..
좋은 답변 .. 부탁드립니다.
3일째 삽질하다보니.. 답답해서 미칠지경입니다.....ㅠ
댓글 달기