expat으로 한글 문서 파싱하기...

bourne의 이미지

expat으로 다른 문서들은 파싱하는데 별 문제 없었습니다.
문제는 expat으로 한글 문서를 파싱하려는데,
구글링을 통해 찾은 문서들은 아무리 봐도 이해가 가질 않습니다. ㅠ
iconv와 XML_SetUnknownEncodingHandler를 이용해야 한다는 것 이외에는 전혀 감을 잡지 못하고 있습니다.
고수님들 도움 부탁드립니다.

irondog의 이미지

작년에 해 봤는데, 저도 기억이 잘 안나네요.
utf-8이나 euc-kr을 쓰느냐만 잘 처리하면 어렵지 않았던 것 같은데요.
제 기억에는 expat이 euc-kr을 에러 처리하기 때문에 iconv같은 툴이나 라이브러리로
euc-kr코드를 utf-8로 바꾼 다음에 처리하면 문제 없이 처리 됐던 것으로 기억 합니다.

iconv.h를 찾아서 함수 기능을 잘 찾아 보세요.

ironiris의 이미지

근데 iconv 로 euc-kr 문서를 변환하다보면 에러날때도 있지 않나요?

irondog의 이미지

글쎄요. euc-kr 중간에 비는 영역에 넣어 임의로 쓰는 그림글자들은 종종 깨졌던것 같기는 한데... 한글은 별 문제 없었던것 같은데요.

ironiris의 이미지

예전에 euc-kr 로 작성된 qmail 설치문서를 iconv 로 변환했다가 중간까지만 변환되고 끝나서 낭패를 봤던 기억이 있어서요.
(정상적으로 변환된줄알고 원본을 지워버렸다가.. ㄷㄷㄷ)
그리고 email 파싱할때 php의 iconv로 문자열을 디코딩하면 이상하게 정상적이지 않을때가 있습니다.
그래서 mb_string 을 사용하죠.

cinsk의 이미지

bourne의 이미지

좀더 구체적인 답변을 해주셨으면 합니다..ㅠ
unknownEncodingHandler에서 XML_Encoding 구조체의 setting은 어떻게 해야하며..
XML_SetCharacterDataHandler 에 2번째 파라메터로 넘길 핸들러는 어떻게 구현해야 하는지 등...
님들이 올려주신 답변을 적용해 보고 싶어도 구체적인 내용을 몰라 적용을 해보지 못하고 있습니다.ㅠ

너무 무지해서 부끄럽습니다..
이와같은 내용을 경험해 보시거나 관련된 예제를 알고 계시분의 도움 부탁드립니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.