簡易charset 轉換 [C/C++程式]


由於工作關係時常要轉換charset,

經過一些時間再資料整合後,畢者現在使用的工具。

簡單說明怎樣使用,不作詳細解使每一部分了,如下

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

//converter 這是一個主function 幫助你去轉換
int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
{
iconv_t cd;
int rc;
char **pin = &inbuf;
char **pout = &outbuf;

cd = iconv_open(to_charset,from_charset);
if (cd==0) return -1;
memset(outbuf,0,outlen);
if (iconv(cd,pin,&inlen,pout,&outlen)==-1) return -1;
iconv_close(cd);
return 0;
}
//GB2312 > UNICODE 用者可以改變此function 內的參數,如需要big-5 -> utf-8 改變gb2312 成big-5即可以了。
int g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen)
{
return code_convert(“gb2312″,"utf-8″,inbuf,inlen,outbuf,outlen);
}

此部分作為測試,

在char* in_gb2312 記載了GB2312 的中文字,

使用上面的g2u的function ,最後就可以印出utf-8的中文字了。
int main(int argc, char** argv)
{
char* in_gb2312 = “我系测试程式。";
char out[255];
int rc = g2u(in_gb2312,strlen(in_gb2312),out,255);
printf(“%s",out);
return 0;
}

希望幫到有需要的你=]

PS. 一般來說,筆者我會配合LEX使用。

PS2. 此工具已經不知從網那裡找來了,如果是你的可以加上你的名字。

廣告

About 阿目

塵世中一個迷途小書僮

Posted on 2011/05/03, in C Program, Tutorial and tagged , , , . Bookmark the permalink. 發表留言.

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: