VSGBK编码和UTF-8编码转换

#include

成都网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站制作等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都柴油发电机等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞许!

// 注释:多字节包括GBK和UTF-8

int GBK2UTF8(char *szGbk,char *szUtf8,int Len)

{

    // 先将多字节GBK(CP_ACP或ANSI)转换成宽字符UTF-16

    // 得到转换后,所需要的内存字符数

    int n = MultiByteToWideChar(CP_ACP,0,szGbk,-1,NULL,0);

    // 字符数乘以 sizeof(WCHAR) 得到字节数

    WCHAR *str1 = new WCHAR[sizeof(WCHAR) * n];

    // 转换

    MultiByteToWideChar(CP_ACP,  // MultiByte的代码页Code Page

        0,            //附加标志,与音标有关

        szGbk,        // 输入的GBK字符串

        -1,           // 输入字符串长度,-1表示由函数内部计算

        str1,         // 输出

        n             // 输出所需分配的内存

        );

    // 再将宽字符(UTF-16)转换多字节(UTF-8)

    n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);

    if (n > Len)

    {

        delete[]str1;

        return -1;

    }

    WideCharToMultiByte(CP_UTF8, 0, str1, -1, szUtf8, n, NULL, NULL);

    delete[]str1;

    str1 = NULL;

    return 0;

}

//UTF-8 GBK

int UTF82GBK(char *szUtf8,char *szGbk,int Len)

{

    int n = MultiByteToWideChar(CP_UTF8, 0, szUtf8, -1, NULL, 0);

    WCHAR * wszGBK = new WCHAR[sizeof(WCHAR) * n];

    memset(wszGBK, 0, sizeof(WCHAR) * n);

    MultiByteToWideChar(CP_UTF8, 0,szUtf8,-1, wszGBK, n);

    n = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);

    if (n > Len)

    {

        delete[]wszGBK;

        return -1;

    }

    WideCharToMultiByte(CP_ACP,0, wszGBK, -1, szGbk, n, NULL, NULL);

    delete[]wszGBK;

    wszGBK = NULL;

    return 0;

}


当前题目:VSGBK编码和UTF-8编码转换
文章位置:http://bzwzjz.com/article/jdpsco.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站制作 成都网站制作 成都网站设计 网站建设 网站建设开发 app网站建设 高端网站设计 阿坝网站设计 营销网站建设 定制网站设计 成都网站设计公司 网站建设公司 四川成都网站制作 企业网站设计 网站设计制作 成都网站建设流程 专业网站建设 成都营销网站制作 成都网站建设 成都网站设计 企业网站设计 上市集团网站建设