libxml 라이브러리 인코딩에 관련된 궁금증입니다.

HooKi의 이미지

회사에서 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일째 삽질하다보니.. 답답해서 미칠지경입니다.....ㅠ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.