'부적절하거나 불완전한 다중바이트 또는 광역 문자'에 해당되는 글 1건

  1. 2010.06.24 오늘도 실수.. iconv

오늘도 실수.. iconv

문자열을 변환하는데.. "춏" 이런 글자가 나오면 문제가 생기길래..

로케일 문자에러가 생긴다는 생각은 했는데...

암튼 막 문제가 생기는거 같은 부분을 쭉쭉 타고 역으로 올라가다보니깐 (한시간 더 찾았다 -_-)

perror(); 써서 확인해보니깐
"부적절하거나 불완전한 다중바이트 또는 광역 문자" 라는 메세지가 뜨고.....

그래서 설마 하며 #define한걸 보니

#define LRC_FILE_LOCALE    "EUCKR //IGNORE"         /*  */
#define PRINTED_LOCALE     "UTF8"          /*  */

UTF8 => EUCKR로 변환하는건 옵션을 붙였는데
EUCKR=> UTF8로 변환할때는 옵션을 안붙였네 아놔...

아나 iconv_open 하는 부분의 //IGNORE 가  빠져 있음 ....

//IGNORE  추가....
#define PRINTED_LOCALE     "UTF8 //IGNORE"          /*  */

결국엔

iconv_open("EUCKR //IGNORE", "UTF8 //IGNORE"); // 이런식이 되시겠다.... 맞나 이게...

맨 페이지 아저씨는 이렇게 말씀하셧따.

       //TRANSLIT
              When  the  string  "//TRANSLIT"  is appended to tocode, transliteration is activated.  This means that when a character cannot be represented in the target
              character set, it can be approximated through one or several similarly looking characters.

       //IGNORE
              When the string "//IGNORE" is appended to tocode, characters that cannot be represented in the target character set will be silently discarded.

- 요약하자면... 그냥 로게일 뒤에
"//IGNORE" 써주면 인식 못하는 문자는 무시한다는거구
"//TRANSLIT"는  iconv_open이 비슷한 문자를 알아서 때려넣어(?) 준다는것

오늘의 병신짓 ㅜㅜ.. 이젠 출력되다가 중간에 끊어먹는 버그 해결

에휴 시간 아까워...

'Programming > C' 카테고리의 다른 글

포인터 연습  (6) 2011.05.27
간단한 디버그 함수  (0) 2010.08.16
아아 또 실수~!  (4) 2009.06.22
주의력 부족  (2) 2009.06.22
이진트리를 만들고나서....아 망했어요...  (2) 2009.05.25
prev 1 next