'똠방각하'가 이상하게 변환 / iconv로 EUCKR -> UTF8 변환할 때.

purewell의 이미지

char original[] = "가나다라 똠방각하 만만세!! ABC";  // EUCKR
char* iptr(original);
size_t isize(sizeof(original));
 
char target[isize*3+1];
size_t osize(sizeof(target));
 
// iconv 초기화 생략
 
iconv(iv, &iptr, &isize, &optr, &osize); // 에러 없음.
 
printf("%s", optr);

결과 : 가나다라 c방각하 만만세!! ABC

ㅡ_-)a 뭐가 잘못된거죠?

purewell의 이미지

자문자답입니다.
원본이 EUCKR이 아니라 CP949였습니다. 쀍!

----------------------------------------
언제나 맑고픈 샘이가...
http://yubink.com - 강아지 필요하세요?
http://purewell.biz - 헙!!

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

이한길의 이미지

저는 구분하지 않고 가끔 썼었는데..
낭패볼뻔 했네요..ㅎㅎ

먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.xo.st

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com

lovian의 이미지

C방각하라.. ;;

무슨 욕 변환기 돌린듯하네요. ^^;;
___________________
한글을 사랑합니다.

-----------------
한글을 사랑합니다.

마잇의 이미지

항상 궁금했던건데....

cp949(UHC)가 euc-kr의 합집합이라고 보면 되는걸까요?

iconv -f cp949 혹은 vim 에서 set fileencodings=ucs-bom,utf8,cp949

이런식의 지정이 euc-kr에 대해서도 항상 안전한건가요?

--
마잇


--
마잇

huricool의 이미지

CP949에서는 똠 자를 처리 못하나 보죠?

캐릭터셋때문에 점점 머리가 꼬이네요.
CP949 가 euc_kr 인줄 알았는데.. 흑...

무인도에 갇힌다면 당신이 가지고 갈 세가지는?

superwtk의 이미지

> CP949에서는 똠 자를 처리 못하나 보죠?

원본이 cp949 인데 euc-kr로 착각해서

cp949 -> utf-8 이렇게 변환해야 할 것을
euc-kr -> utf-8 이렇게 변환하려고 시도해서 그런 문제가 생긴게 아닐까요?

정태영의 이미지

마잇님께...

cp949 는 euc-kr 에 대한 하위 호환성을 가집니다 :) 그렇기 때문에 euc-kr 로 작성된 문서를 cp949 로 취급하는건 문제가 되지 않습니다. (반대의 경우엔 문제가 생길 수 있습니다)

---
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

마잇의 이미지

답글 감사합니다.

UTF-8로 기본으로 읽기 쓰기로 하고,
넘어오는 데이터 읽기는 cp949로 읽고,
윈도우즈와의 데이터 호환이 필요한곳은 euc-kr로 써서 주고,
euc-kr로 표현 못하는 문자를 입력해야 하는 경우는 cp949로 써서 준다.
(vim에서 '똠' 입력하고 fileencoding=euc-kr로 저장을 시도 하면 에러를 내주네요)

이 정도 전략이면 현명할까요 : )

--
마잇


--
마잇

Prentice의 이미지

7bit ASCII 문서를 UTF-8로 취급해도 괜찮은 것과 비슷한 건가요

댓글 달기

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