• iconv_open、iconv和iconv_close函数使用示例


    bool isUtf8(const char* str)
    {
        return ((0xEF == (unsigned char)(str[0])) 
             && (0xBB == (unsigned char)(str[1])) 
             && (0xBF == (unsigned char)(str[2])));
    }
    
    int code_convert(char *from_charset,char *to_charset, char *inbuf, size_t inlen, char *outbuf, size_t outlen)
    {
        iconv_t cd;    
        char **pin = &inbuf;
        char **pout = &outbuf;
        
        cd = iconv_open(to_charset, from_charset);
        if (0 == cd) return -1;
        if (-1 == iconv(cd, pin, &inlen, pout, &outlen))
        {
            int old_errno = errno;
            iconv_close(cd);
            errno = old_errno;
            return -1;
        }
    
        iconv_close(cd);
        return 0;
    }
    
    int toUtf8(char *inbuf, size_t inlen, char *outbuf, size_t outlen)
    {
        return code_convert("gb2312", "utf-8", inbuf, inlen, outbuf, outlen);
    }
    
    int toGB2312(char *inbuf, size_t inlen, char *outbuf, size_t outlen)
    {
        return code_convert("utf-8", "gb2312", inbuf, inlen, outbuf, outlen);
    }

  • 相关阅读:
    面向对象———类
    二维数组简单使用
    数组——算法
    第6章 约束满足问题CSP
    第5章 对抗搜索
    第4章 超越经典的搜索
    140303 命令行选项 ccf
    150904 高速公路 ccf
    170304 地铁修建 ccf
    vector容器
  • 原文地址:https://www.cnblogs.com/aquester/p/9891729.html
Copyright © 2020-2023  润新知