最近在做專案,為了能讓ui顯示中文,需要對中文進行編碼轉換。因為我用的是directfb,它只支援utf-8格式,所以要將gb2312轉換為utf-8,這時使用iconv是非常方便的。
以下是我在專案中用到的一部分**。
首先要使用iconv的api需要包含它的標頭檔案#include "iconv.h" 或者#include
#define outlen 512
int code_convert(char *from_charset,char *to_charset,char *inbuf,int inlen,char *outbuf,int outlen)
/*unicode碼轉為gb2312碼*/
int u2g(char *inbuf,int inlen,char *outbuf,int outlen)
/*gb2312碼轉為unicode碼*/
int g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen)
void test_ui()
;char *tmp = null;
rect.x = qrcode_x-190;
rect.y = qrcode_y+qrcode_h+180;
rect.w = qrcode_w+700;
rect.h = qrcode_h;
/*unicode碼轉為gb2312碼*/
rc = u2g(in_utf8,strlen(in_utf8),out,outlen);
printf("unicode-->gb2312 out=%sn",out);
//gb2312碼轉為unicode碼
rc = g2u(in_gb2312,strlen(in_gb2312),out,outlen);
printf("gb2312-->unicode out=%sn",out);
textfield(out, strlen(out), version_color, 24, rect, actuitext_left, bgwindow);
auiblitwindow(bgwindow, null);
}
在Linux下使用iconv轉換字串編碼
在linux下寫c程式,尤其是網路通訊程式時經常遇到編碼轉換的問題,這裡要用到iconv函式庫。iconv函式庫有以下三個函式 include iconv t iconv open const char tocode,const char fromcode return iconv t 1 if f...
在Linux下使用iconv轉換字串編碼
在linux下寫c程式,尤其是網路通訊程式時經常遇到編碼轉換的問題,這裡要用到iconv函式庫。iconv函式庫有以下三個函式 123 456 include iconv t iconv open const char tocode,const char fromcode return iconv ...
linux使用iconv在不同字元編碼中轉換
在linux系統下利用iconv命令進行gbk與utf 8字元編碼間的轉換 gbk編碼和utf 8編碼的區別 1.gbk的文字編碼是雙位元組來表示的,即不論中 英文本元均使用雙位元組來表示,只不過為區分中文,將其兩個位元組的最高位都定成1。utf 8編碼則是用以解決國際上字元的一種多位元組編碼,它對...