命令列"iconv --list
" 檢視linux作業系統支援的字符集
iconv_open 設定字符集轉化--iconv_t iconv_open(const
char *tocode, const
char *fromcode);
--引數tocode目標字符集的字串
--引數fromcode源字符集的字串
--函式成功返回描述符,失敗返回-1
,並且設定errno
--開啟後,必須使用iconv_close()函式關閉描述符
iconv 將inbuf字符集的字串轉化成outbuf新字符集下的字串--size_t iconv(iconv_t cd,char **inbuf, size_t *inbytesleft,char **outbuf, size_t *outbytesleft);
--引數cd表示iconv_open()函式返回的描述符
--引數inbuf需要轉化的字串的指標
--引數inbytesleft需要轉化字串長度的指標
--引數outbuf目標字串的指標
--引數outbytesleft目標字串長度的指標必須設定為目標字串的最大長度
--函式失敗返回-1,並且設定errno
//字符集轉碼 gbk--utf-8
#include #include
#include
#include
#include
#include
int gbktoutf8(char *src, size_t *srclen, char *dest, size_t *destlen)
//將gbk字符集轉化成utf-8字符集
iconv_t cd = iconv_open("
utf8
", "
gbk"
);
if (cd == (iconv_t)-1
)
size_t rc = iconv(cd, &src, srclen, &dest, destlen);
if (rc < 0
)
iconv_close(cd);
return0;
}int main(int arg, char *args)
//讀乙個windows檔案
file *pfr =null;
pfr = fopen(args[1], "r"
);
if (pfr ==null)
char srcbuf[1024] = ;
size_t srclen = 0
;
char destbuf[1024] = ;
size_t destlen = 0
;
//read the file
while (!feof(pfr))
printf("%s
",destbuf);
memset(destbuf,
0,sizeof
(destbuf));
memset(srcbuf,
0,sizeof
(srcbuf));
}fclose(pfr);
return0;
}
windows系統下的文字檔案一般都是ucs-2字符集或者gbk字符集
字符集轉化 curses
linux字串轉化使用方法 第一步 iconv open 目標字符集,源字符集 第二步 iconv 實現字符集轉化 第三步 iconv close 關閉iconv 命令 iconv list 顯示系統中支援的字符集 makefile suffixes c o cc gcc srcs mydaemon...
字符集轉化 curses
linux字串轉化使用方法 第一步 iconv open 目標字符集,源字符集 第二步 iconv 實現字符集轉化 第三步 iconv close 關閉iconv 命令 iconv list 顯示系統中支援的字符集 makefile suffixes c o cc gcc srcs mydaemon...
mysql字符集轉化關係
表的字符集 其實是字段的字符集 客戶端字符集 set names 的這個字符集 文字的字符集 可以理解為在web介面中的charset 這個字符集,或者是ssh terminal終端的字符集下輸入的文字的格式 有如下的關係 1 當表的字符集是gbk或者utf8時,客戶端和文字的字符集同時為gbk或者...