- iconv?
* HomePage : http://www.gnu.org/software/libiconv/
* 문자 인코딩간 변환을 수행하는 라이브러리
- iconv 예제
* HomePage : http://www.gnu.org/software/libiconv/
* 문자 인코딩간 변환을 수행하는 라이브러리
- iconv 예제
#include <iconv.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
# define BTN_VIDEO_LB "비디오"
int euckr2utf8( char *inbuf, char *outbuf )
{
size_t inbytesleft;
size_t outbyteleft;
char *inbuf_p = inbuf;
char *outbuf_p = outbuf;
iconv_t cd = iconv_open( "UTF8", "EUC-KR" );
if ( cd < 0 )
{
perror( "iconv" );
return 1;
}
inbytesleft = strlen( inbuf );
assert( inbytesleft != 0 );
printf( "inbytesleft %d \n", inbytesleft );
outbyteleft = 999;
iconv( cd, &inbuf_p, &inbytesleft, &outbuf_p, &outbyteleft );
printf( "outbyteleft %d\n", outbyteleft );
iconv_close( cd );
return 0;
}
int utf82euckr( char *inbuf, char *outbuf )
{
size_t inbytesleft;
size_t outbyteleft;
char *inbuf_p = inbuf;
char *outbuf_p = outbuf;
iconv_t cd = iconv_open( "EUC-KR", "UTF8" );
if ( cd < 0 )
{
perror( "iconv" );
return 1;
}
inbytesleft = strlen( inbuf );
assert( inbytesleft != 0 );
printf( "inbytesleft %d \n", inbytesleft );
outbyteleft = 999;
iconv( cd, &inbuf_p, &inbytesleft, &outbuf_p, &outbyteleft );
printf( "outbyteleft %d\n", outbyteleft );
iconv_close( cd );
return 0;
}
int main( int argc, char *argv[] )
{
char buf[ 100 ];
char buf2[ 100 ];
printf( "org %s, len (%d)\n", BTN_VIDEO_LB, strlen( BTN_VIDEO_LB ) );
euckr2utf8( BTN_VIDEO_LB, buf );
printf( "orig -> utf8 : %s, len (%d)\n", buf, strlen( buf ) );
utf82euckr( buf, buf2 );
printf( "utf8 -> euckr : %s, len (%d)\n", buf2, strlen( buf2 ) );
return 0;
}
#include <stdio.h>
#include <string.h>
#include <assert.h>
# define BTN_VIDEO_LB "비디오"
int euckr2utf8( char *inbuf, char *outbuf )
{
size_t inbytesleft;
size_t outbyteleft;
char *inbuf_p = inbuf;
char *outbuf_p = outbuf;
iconv_t cd = iconv_open( "UTF8", "EUC-KR" );
if ( cd < 0 )
{
perror( "iconv" );
return 1;
}
inbytesleft = strlen( inbuf );
assert( inbytesleft != 0 );
printf( "inbytesleft %d \n", inbytesleft );
outbyteleft = 999;
iconv( cd, &inbuf_p, &inbytesleft, &outbuf_p, &outbyteleft );
printf( "outbyteleft %d\n", outbyteleft );
iconv_close( cd );
return 0;
}
int utf82euckr( char *inbuf, char *outbuf )
{
size_t inbytesleft;
size_t outbyteleft;
char *inbuf_p = inbuf;
char *outbuf_p = outbuf;
iconv_t cd = iconv_open( "EUC-KR", "UTF8" );
if ( cd < 0 )
{
perror( "iconv" );
return 1;
}
inbytesleft = strlen( inbuf );
assert( inbytesleft != 0 );
printf( "inbytesleft %d \n", inbytesleft );
outbyteleft = 999;
iconv( cd, &inbuf_p, &inbytesleft, &outbuf_p, &outbyteleft );
printf( "outbyteleft %d\n", outbyteleft );
iconv_close( cd );
return 0;
}
int main( int argc, char *argv[] )
{
char buf[ 100 ];
char buf2[ 100 ];
printf( "org %s, len (%d)\n", BTN_VIDEO_LB, strlen( BTN_VIDEO_LB ) );
euckr2utf8( BTN_VIDEO_LB, buf );
printf( "orig -> utf8 : %s, len (%d)\n", buf, strlen( buf ) );
utf82euckr( buf, buf2 );
printf( "utf8 -> euckr : %s, len (%d)\n", buf2, strlen( buf2 ) );
return 0;
}
'Development' 카테고리의 다른 글
[Eclipse]subclipse(Eclipse용 Subversion) (0) | 2008.10.09 |
---|---|
[Eclipse]astyle(Artistic Style) plugin (0) | 2008.10.09 |
[Development/Project/Game]게임을 개발해 보자.. (0) | 2008.09.05 |
[Python]utf-8 확인 코드 (0) | 2008.07.30 |
[Development]Intel IPP (Integrated Performance Primitives) (2) | 2008.07.29 |