iconv で文字コード変換.

文字コードを変換する必要があったので,iconv を使うことに.とりあえず,テストコードを作成.

char *tocode   ="ISO-2022-JP";
char *fromcode ="EUC-JP";

int SZ=1024;
char *inbuf="ほげほげ表形式大石オブジョイトイ";
int  inbytesleft=strlen(inbuf);
char *outbuf=(char*)malloc(SZ);
int outbytesleft=SZ;

iconv_t cd = iconv_open(tocode, *fromcode);
memset(outbuf, 0, SZ);
do {
   result = iconv(cd, 
		   &inbuf, &inbytesleft,
		   &outbuf, &outbytesleft);
      if ((size_t)(-1) == result)
          break; 
} while( inbytesleft > 0 );
iconv_close(cd);

printf(outbuf);

使いにくい.perlphpの変換関数みたいに,自動で fromcode を推定してほしいなぁ.