iconv 에서요...

mips의 이미지

iconv를 이용해서 문자열 변환 프로그램을 만들고 있는데요,
이상하게 iconv가 안 먹히네요.

#include <stdio.h>
#include <iconv.h>

int
main (int argc, char *argv[])
{
  iconv_t utf2euc;
  char inbuf[] = "\xea\xb0\x82";
  unsigned char outbuf[10];
  char *inptr, *outptr;
  int insize, outsize;

  utf2euc = iconv_open ("euc-kr", "utf8");
  if ((int)utf2euc <= 0)
    {
      printf ("iconv_open failed!\n");
    }
  else
    {
      int n, i;

      inptr = inbuf;
      outptr = outbuf;
      insize = 3;
      outsize = 10;

      n = iconv (utf2euc, (const char **)&inptr, &insize, &outptr, &outsize);

      if (n > 0) {
        printf ("0x");
        for (i = 0; i < (10 - outsize); i++)
          printf ("%x", outbuf[i]);
        printf ("\n");
      }
    }
  exit (0);
}
pynoos의 이미지

일단은 inbuf에 들어 있는 UTF-8 string이 제대로 되어있는지 확인 해보시기 바랍니다.

참고로.. 다음은 "안녕" 이라는 문자열의 UTF-8 표현입니다.
{0xec, 0x95, 0x88, 0xeb,0x85, 0x95}
안되시면 이것으로라도 확인해보시길..

아시겠지만.. 그리고 iconv 함수의 return 값이 변환된 문자 갯수를 return 하는 것이 아니라는 것 염두에 두시고 코드를 수정해서 확인 해보세요.