zoukankan      html  css  js  c++  java
  • utf8转gbk,libcurl中文乱码处理

    这两个转码在网页客户端处理用很常见,所使用的平台为VS2010,字符集采用多字节字符集

    utf8转gbk

    string UTF8ToGBK(const std::string& strUTF8)  
    {  
        int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0);  
        WCHAR* wszGBK = new WCHAR[len+1];
        memset(wszGBK, 0, len * 2 + 2);  
        MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUTF8.c_str(), -1, wszGBK, len);  
      
        len = WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);  
        char *szGBK = new char[len + 1];  
        memset(szGBK, 0, len + 1);  
        WideCharToMultiByte(CP_ACP,0, wszGBK, -1, szGBK, len, NULL, NULL);   
        std::string strTemp(szGBK);  
        delete[]szGBK;  
        delete[]wszGBK;  
        return strTemp;  
    } 
    View Code

    gbk转utf8

    string GBKToUTF8(const std::string& strGBK)  
    {  
        string strOutUTF8 = "";  
        WCHAR * str1;  
        int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);  
        str1 = new WCHAR[n];  
        MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);  
        n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);  
        char * str2 = new char[n];  
        WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);  
        strOutUTF8 = str2;  
        delete[]str1;  
        str1 = NULL;  
        delete[]str2;  
        str2 = NULL;  
        return strOutUTF8;  
    } 
    View Code
  • 相关阅读:
    目前流行前端几大UI框架排行榜
    vue nginx配置
    快速切换npm源
    vue项目打包部署生产环境
    VScoed Vue settings.json配置
    java获取远程图片分辨率
    Fegin的使用总结
    线程池核心参数
    mysqldump定时任务生成备份文件内容为空解决方法
    对汉字编码
  • 原文地址:https://www.cnblogs.com/iRoad/p/4105172.html
Copyright © 2011-2022 走看看