[질문] 유니코드(리틀엔디언) 한글 파일을 Hex 코드로 변환하려고 합니다

weipp의 이미지

안녕하세요~

유니코드의 개념이 잘 잡혀 있지 않은 초보입니다...

기존에 ASCII구성된 txt 파일(한글포함)을 hex로 변환하여 파일로 저장,
이것을 배열에 읽어들여 숫자/기호/영문/한글로 출력해주는 코드를 사용했습니다

while( (ch = fgetc(fp_r)) != EOF )
{
sprintf(tmp_print, "%8x", ch);
if( *(tmp_print+6) == ' ' )
fprintf(fp_w, "0x0");
else
fprintf(fp_w, "0x%.1s", tmp_print+6);
fprintf(fp_w, "%.1s", tmp_print+7);

if(i != 0 && !(i % 16))
fprintf(fp_w, "\r\n,");
else
fprintf(fp_w, ",");
++i;
}
이런식으로 간단히 읽어들여서 앞에 0x만 붙여줘서 배열에 삽입했습니다...

그런데 이번에 유니코드로 된 파일을 사용해야되는 경우가 생겨서 이렇게 질문 드립니다.

문제는 지금 사용하는 프로그램의 출력부분이 ASCII쪽으로만 대응하기 때문에

유니코드 파일을 읽어들여서 이것을 ASCII로 변환, hex로 저장하고 싶은데요..

감을 못잡겠습니다

힌트라든지 위에 해당하는 소스코드를 알고 계신분은 리플을 부탁드립니다.

뭐.. 단순히 유니코드로된 파일을 다른이름으로 저장하기하여 ANSI로 저장해서 사용하라고하면 할말은 없구요 //:(

modestcode의 이미지

iconv, icu 라이브러리를 활용하심이?

doraq의 이미지

윗분 말씀대로 iconv 라는 유틸리티가 코드 포멧을 바꿔주는 역할을 하므로
이용하시면 되겠습니다.
쉘스크립트로 님의 프로그램 전단계에서 iconv로 변환과정을 거치면 간단하겠는데요.

만약 그 유니코드 파일내용에 한글이 없이 단순 알파벳으로만 되있다면
직접 작성하는것도 쉬우나 약11만자가 넘는 유니코드 한글코드를 KSC5601코드로
일일이 1:1 매핑하는 테이블을 만드셔야 합니다.
단순한 계산으로 되는 코드변환이 아니므로 노가다 작업이고,
한글뿐 아니라 다른 코드페이지의 문자가 자꾸 포함된다면
그때마다 수정해야하니 굳이 만들어 쓸 필요는 없어 보입니다.

댓글 달기

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