Cocos2dx学习: GBK 和 UTF-8的转换

来源:互联网 发布:电路图仿真软件下载 编辑:程序博客网 时间:2024/04/29 16:12
int code_convert(const char *from_charset, const char *to_charset, const char *inbuf, size_t inlen, char *outbuf, size_t outlen){    iconv_t cd;    const char *temp = inbuf;    const char **pin = &temp;    char **pout = &outbuf;    memset(outbuf, 0, outlen);        cd = iconv_open(to_charset, from_charset);    if (cd == 0) return -1;    if (iconv(cd, (char **)pin, &inlen, pout, &outlen) == -1) return -1;    iconv_close(cd);    return 0;}

GBK 转 UTF-8

std::string a2u(const char *inbuf){    size_t inlen = strlen(inbuf);    char * outbuf = new char[inlen * 2 + 2];    std::string strRet;    if (code_convert("GBK", "UTF-8", inbuf, inlen, outbuf, inlen * 2 + 2) == 0)    {        strRet = outbuf;    }    delete[] outbuf;    return strRet;}
UTF-8转 GBK
std::string u2a(const char *inbuf){    size_t inlen = strlen(inbuf);    char * outbuf = new char[inlen * 2 + 2];    std::string strRet;    if (code_convert("UTF-8", "GBK", inbuf, inlen, outbuf, inlen * 2 + 2) == 0)    {        strRet = outbuf;    }    delete[] outbuf;    return strRet;}



0 0
原创粉丝点击