[잡담] iconv 속상하군요.

emptynote의 이미지

네트워크 상에서 임의의 문자셋을 가지는 문자를 보내고 받을려고 합니다.

처음엔 iconv 있어서 그냥 한번 호출하면 끝날것 같아서 와우 쉽게 되겠다 했는데,

막상 작업을 해 보니 그렇지 않군요.

iconv 속상하군요. 저 같은 경우는 온전한 1개 문자를 저장 할 수 없다면 거기서 E2BIG 하겠는데,

실제 테스트 해보니 출력 버퍼의 끝자락까지 간후에도 써야할 바이트가 남았다면 E2BIG 를 던지는군요.

예를 들면 한글 "한" 자를 EUC-KR 로 저장한다고 할때,

EUC-KR 문자셋의 한글 '한'자는 2byte이므로,

출력 버퍼의 길이가 1byte 에는 2byte를 저장될수가 없습니다.

그런데, 2byte중 1byte는 저장되고 다음 마지막 byte 저장할때야 E2BIG 을 날리는군요.

에구구구구~

미완성된 문자 코드를 제거하고 싶은데,

그렇게 하지니 2가지 방법이 생각나지만,

첫번째 iconv 소스 가지고 와서 E2BIG 날리는 조건을 수정하는 나만의 iconv 함수 만들기

두번째 한글자 한글자 변환을 해서 다음 문자의 시작 위치를 기억하여
만약 한글자를 다 저장할수없는 E2BIG 발생시
기억한 다음 문자의 시작 위치부터 출력버퍼끝까지 clear해주는 방법

영 2가지 방법 모두 탐탁지가 않네요.