51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> C >> 文章正文

size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)函数的用法

更新时间:2013-6-23:  来源:51代码网
#include <stdlib.h> #include <string.h> #include <iconv.h> #include <stdio.h>    #define hz_offset(hz)    (((hz[0] - 0xa1) * 94 + (hz[1] - 0xa1)) * 32)    /* 字符串转码 */int decoding(char* from_charset, char* to_charset, char* inbuf, int inlen, char* outbuf, int outlen) {     iconv_t cd;     char** pin = &inbuf;     char** pout = &outbuf;        if((cd = iconv_open(to_charset, from_charset)) == (iconv_t)0)     {         return -1;     }        memset(outbuf, 0, outlen);     if(iconv(cd, pin, &inlen, pout, &outlen) == -1)     {         iconv_close(cd);         return -1;     }        iconv_close(cd);     return 0;  }    /* 汉字从UTF-8转为GB2312编码 */int hz_decoding(char* hz_utf8, char* hz_gb2312) {     return decoding("utf-8", "gb2312", hz_utf8, 3, hz_gb2312, 3); }    /* 打印汉字 */void hz_show(unsigned char* datas) {     int i;     int j;     int k;     unsigned char ch;        for(i = 0; i < 16; i++)     {         for(j = 0; j < 2; j++)         {             ch = datas[i * 2 + j];             for(k = 0; k < 8; k++)             {                 if(ch & 0x80)                 {                     printf("%c ", '*');                 }                 else                {                     printf("  ");                 }                 ch <<= 1;             }         }         printf("\n");     } }    int main(int argc, char* argv[]) {     FILE* hzk;     unsigned char hz_utf8[3] = "宋";     unsigned char hz_gb2312[3];     unsigned char hz_datas[32];        hz_decoding(hz_utf8, hz_gb2312);     printf("%x, %x\n", hz_gb2312[0], hz_gb2312[1]);        if((hzk = fopen("simhei_gb2312_16.ds", "rb")) == NULL)     {         return -1;     }        fseek(hzk, hz_offset(hz_gb2312), SEEK_SET);     fread(hz_datas, 32, 1, hzk);     hz_show(hz_datas);        fclose(hzk);     return 0; }

上一页  [1] [2] 

赞助商链接
推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |