유니코드 UTF-8로 변환하는 방법 질문입니다.
글쓴이: park3250 / 작성시간: 화, 2016/07/26 - 5:25오후
안녕하세요
유니코드를 UTF-8로 변환하려고 하는데요..
int W2UTF8Convert( const wchar_t* a_szSrc, int a_nSrcSize, char* a_szDest, int a_nDestSize ) { #ifdef WINDOWS return WideCharToMultiByte( CP_UTF8, 0, a_szSrc, -1, a_szDest, a_nDestSize, NULL, NULL ); #else size_t result; iconv_t env; env = iconv_open("UTF-8","UTF-32"); env = iconv_open("UTF-8","WCHAR_T"); if (env==(iconv_t)-1) { printf("iconv_open WCHAR_T->UTF8 error%s %d/n",strerror(errno),errno) ; return -1; } result = iconv(env,(const char**)&a_szSrc,(size_t*)&a_nSrcSize,(char**)&a_szDest,(size_t*)&a_nDestSize); if (result==(size_t)-1) { printf("iconv WCHAR_T->UTF8 error %d/n",errno) ; return -1; } iconv_close(env); return (int)result; #endif }
env = iconv_open("UTF-8","UTF-32");
env = iconv_open("UTF-8","WCHAR_T");
두가지 방법 모두 해봐도 진행중에 iconv() 함수에서 쓰레기값 리턴이되네요..
함수호출할때는 Input 길이 wcslen(Inputbuff) 이렇게 해서 넘겼어요..
뭐가 잘못된거인가요?ㅜㅜ
Forums:
UCS2/UCS4 <=> UTF8 쉽습니다.
UTF8 인코딩은 UCS2/4를 기존 ASCII 처리함수에서도 문제없이 사용하기 위해서 16/32비트 문자를 쉬프트하고 MSB와 몇가지를 세팅한 것입니다.
비트쉬트프와 논리연산 몇번이면 끝납니다.
http://www.kristalinfo.com/K-Lab/unicode/Unicode_intro-kr.html
Written By the Black Knight of Destruction
답변 감사드립니다..
내용은 읽어보았는데 정확히 이해가 되질 않아서요..
내공이 좀더 필요한가보네요 아무튼 감사합니다
재현할 수 있는 가장 간단하고 완전한 소스 코드를
재현할 수 있는 가장 간단하고 완전한 소스 코드를 만들어보세요.
댓글 달기