zoukankan      html  css  js  c++  java
  • Linux字符串编码转换

    int code_convert(char *from_charset,char *to_charset,char *inbuf,size_t inlen,char *outbuf,size_t 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;
    }
    //UNICODE码转为GB2312码
    int u2g(char *inbuf,size_t inlen,char *outbuf,size_t outlen)
    {
    return code_convert("utf-8","gb2312",inbuf,inlen,outbuf,outlen);
    }
    //GB2312码转为UNICODE码
    int g2u(char *inbuf,size_t inlen,char *outbuf,size_t outlen)
    {
    return code_convert("gb2312","utf-8",inbuf,inlen,outbuf,outlen);
    }

    char in_utf8[] = "adgdd3ef";
    char in_gb2312[] = "正在安装";
    char out[OUTLEN];

    //unicode码转为gb2312码
    printf("unicode-->gb2312 in=%s ", in_utf8);
    u2g(in_utf8,strlen(in_utf8),out,OUTLEN);
    out[strlen(in_utf8)] = '';
    printf("unicode-->gb2312 out=%s ",out);

    //gb2312码转为unicode码
    printf("gb2312-->unicode in=%s ",in_gb2312);
    g2u(in_gb2312,strlen(in_gb2312),out,OUTLEN);
    out[strlen(in_gb2312)] = '';
    printf("gb2312-->unicode out=%s ",out);

    测试中 中文转码有问题。。。没时间搞了。先mark

  • 相关阅读:
    mkdir,rmdir
    linux目录结构
    echo
    date
    man
    cd
    ls
    线程、进程
    php类型的自动转换
    电商
  • 原文地址:https://www.cnblogs.com/xiao0913/p/6340592.html
Copyright © 2011-2022 走看看