iconv로 인코딩 변환시 에러
글쓴이: 권순선 / 작성시간: 화, 2003/11/18 - 8:53오전
Quote:
kldp:/var/lib/gforge# iconv -f euc-kr -t utf-8 sf_dump_for_gforge > sf_dump_for_gforge.utf
iconv: illegal input sequence at position 236942
http://kldp.net 을 업그레이드하기 위해 현재 database를 복구해서 집어 넣어야 하는데 새로 넣을 database가 utf-8을 사용하는지라 기존에 사용하던 euc-kr인코딩된 db 덤프 파일을 utf-8로 변환해서 복구해야 합니다.
그런데 위와 같은 에러가 발생하는군요. 아마도 파일내용 중간에 이상한 문자가 들어있어서 그런 것 같은데 몇번째 줄에 이상한 문자가 있는지 알려주지 않고 저런식으로 알려주니 찾을 수가 없네요.
이같은 상황에서.... 저 sf_dump_for_gforge 파일을 utf-8로 어떻게 변환할 수 있을까요?
Forums:
흠.. iconv POSIX가 원래 그렇다네요 :)이 KDLP BBS
흠.. iconv POSIX가 원래 그렇다네요 :)
이 KDLP BBS같은 경우도 비슷한 문제가 있어요...
중간에 ㄷ ㅚ ㅆ 같은 글자나 깨진글자같이 인풋로케일에 맞지 않는 들어가면.. 그 이후로는 변환이 안되는 문제가 있거든요..
흠 저도 예전에 받아놨던.. 조합형문서가 중간에.. 깨진문자가 중간중간 들어있어서
제대로 볼수 없는 문제가 있어서 ㅠ_ㅠ;;
흠 iconv에.. -f옵션같은게 있어서.. 잘못된 문자를 만나면
1바이트를 건너뛰고 재시도하게 하는 식의 동작을 할 수 있게 하면 좋을듯 하군요..
아 어제 안그래도 iconv 관련해서 perky님과 얘기를 좀 했었는데..
py-iconv에선가는 기본적으로 1바이트를 건너뛰고 재시도를 하도록..
되어있다는 얘기를 들은 듯 하군요 :)
그걸 이용해보심이..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
CP949를 이용해 보는건 어떨까 싶네요
아마 별일 없으면 EUC-KR로도 되겠지만 사용자가 특별한 글자를 넣었다면 CP949로 시도해보는 것도 좋겠습니다.
Re: CP949를 이용해 보는건 어떨까 싶네요
다른 위치에서 또 오류가 발생하네요. :cry:
iconv euc-KR -> utf8
전에 보니까.. 문자가 UTF8에 있는 넘이 있으면 그런 메시지 나오면서 에러 납니다.
맨페이지 바꿀때 보니까 사람이름에 영문위에 엑센트나 이상한 표시들 있는넘들은
다 이런 에러 뜨더라고요.
즉 코드페이지에서 커버 안하는 것들이 있음 그럴 가능성이 높다라는 얘기지요.
리눅스 만세~
흠..glibc에 있는iconv_prog.c 에서 해당 에러가
흠..
glibc에 있는
iconv_prog.c 에서 해당 에러가 발생하는 부분을 찾아봤습니다 ~.~
흠흠.. 이 부분에서.. EILSEQ에 대한 처리를 좀 다르게 하면
끝까지 변환은 가능하지만... 어떻게 처리를 하는게 좋은 방법일지 모르겠군요..
len--;addr++;를 해주면서...
잘못된 문자로 체크된 글자를 출력해주는게 맞을지..
출력안해주고 그냥 무시하고 넘어가는게 좋을지 모르겠군요.. =3=33
여기선 E2BIG이 아니면 무조건 return을 해서 룹을 빠져나가버리기 때문에..
룹을 빠져나가지 않도록.. if elseif else형식으로 바꿀 필요가 있을 듯 합니다 흐흐흐
흠흠 g_convert에서는 ~.~
goto로 되있어서 건들 부분이 조금 더 적었는데.. 흠 하튼
간단한 패치로 가능은 할겁니다 =3=33
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
Re: CP949를 이용해 보는건 어떨까 싶네요
혹시 확장 완성형 글자가 있는 것이 아닌가요? 유명한 아햏햏 이런...
이런 것이 있으면 먼저 찾아서 다른 걸로 바꾸고 해야 되던데요?
PHP에서 iconv() 사용결과
iconv에서 euc-kr을 utf-8으로 변환하면 확장완성형이 보이지 않더군요.
cp949를 utf-8으로 변환하면 확장완성형까지 모두 변환됩니다.
테스트 페이지가 있는데 내부서버라 보여주지 못함이 아쉽습니당^^
-c 옵션이 있습니다.
iconv --help를 해보면
옵션이 있네요.
iconv -c -f UHC -t UTF-8 를 이용하면 될 듯 합니다.
온갖 참된 삶은 만남이다 --Martin Buber
Re: -c 옵션이 있습니다.
감사합니다. 알려주신 옵션으로 일단 덤프한 파일의 인코딩을 utf로 바꾸었습니다. vim에서 인코딩을 utf로 하니 한글이 잘 보이는 것을 확인하였습니다.
그런데 db쪽에서 이번엔 새로운 문제가 나와 버렸네요. 삽질은 계속됩니다.... 8)
댓글 달기