zoukankan      html  css  js  c++  java
  • Linux下UTF-8和GB2312互相转换的函数

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

    #include<iconv.h>
    using namespace std;
    int utf8togb2312(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen) {   

    iconv_t cd;   

    if( (cd = iconv_open("gb2312","utf-8")) ==0 )     

          return -1;  

    memset(destbuf,0,destlen);   

    const char **source = &sourcebuf;   

    char **dest = &destbuf;
    if(-1 == iconv(cd,source,&sourcelen,dest,&destlen))     

         return -1;   

    iconv_close(cd);   

    return 0;   

    }
    int gb2312toutf8(const char *sourcebuf,size_t sourcelen,char *destbuf,size_t destlen) {   

    iconv_t cd;   if( (cd = iconv_open("utf-8","gb2312")) ==0 )     

    return -1;   memset(destbuf,0,destlen);   

    const char **source = &sourcebuf;   

    char **dest = &destbuf;
      if(-1 == iconv(cd,source,&sourcelen,dest,&destlen))     

    return -1;   

    iconv_close(cd);   

    return 0;   

    }
    int main() {  

    char line[80];  

    char dest_gb2312[200];  

    char dest_utf8[200];  

    int ret ;  

    FILE *fp = fopen("love.txt","r");  

    if(fp == NULL)    

    {      

    printf("oh my dear,open fail... ");      

    return 1;    

    }

      memset(line,0,80);  

    if( NULL == fgets(line,80,fp))    

    {      

    printf("oh fgets fail... ");      

    return 2;    

    }

    printf( "----- :%s ",line );

    ret  = gb2312toutf8(line,strlen(line),dest_gb2312,200);  

    // ret  = gb2312toutf8(dest_gb2312,strlen(dest_gb2312),dest_utf8,80);  

    printf( "ret=%d ",ret);  

    printf( "gb2312:%s ",line );  

    printf( " utf-8:%s ", dest_gb2312 );

      ret  = utf8togb2312(dest_gb2312,strlen(dest_gb2312),dest_utf8,200);  

    printf( "ret=%d ",ret);  

    printf( " utf-8:%s ",dest_gb2312);  

    printf( "gb2312:%s ",dest_utf8);

        return 0;

    }

  • 相关阅读:
    HTML与css语法笔记
    HTML标记含义
    HTML-入门篇day01
    计算器
    九宫格
    5.28第十三周
    5.21 不用交得作业及答案
    5.22 上交作业
    5.15作业
    5.7作业
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/3568923.html
Copyright © 2011-2022 走看看