zoukankan      html  css  js  c++  java
  • Windows 下关于转码的函数

     1 std::string& MsgFieldList::GBToUTF8(std::string& des,const char* str)
     2 {
     3      WCHAR *strSrc;
     4      TCHAR *szRes;
     5 
     6      //获得临时变量的大小
     7      int i = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
     8      strSrc = new WCHAR[i+1];
     9      MultiByteToWideChar(CP_ACP, 0, str, -1, strSrc, i);
    10 
    11      //获得临时变量的大小
    12      i = WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, NULL, 0, NULL, NULL);
    13      szRes = new TCHAR[i+1];
    14      int j=WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, szRes, i, NULL, NULL);
    15 
    16      des = szRes;
    17      delete []strSrc;
    18      delete []szRes;
    19 
    20      return des;
    21 }

    反转代码:

     1 std::string& MsgFieldList::UTF8ToGB(std::string& des,const char* str)
     2 {
     3      WCHAR *strSrc;
     4      TCHAR *szRes;
     5 
     6      //获得临时变量的大小
     7      int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
     8      strSrc = new WCHAR[i+1];
     9      MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i);
    10 
    11      //获得临时变量的大小
    12      i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);
    13      szRes = new TCHAR[i+1];
    14      WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL);
    15 
    16      des = szRes;
    17      delete []strSrc;
    18      delete []szRes;
    19 
    20      return des;
    21 }
  • 相关阅读:
    NETCore中RabbitMQ的使用
    net core 中间件
    表达式和表达式树
    NET
    解决Net内存泄露原因
    Spring的IoC容器-Spring BeanFactory容器
    Spring的Hello World工程
    Linux下使用curl进行http请求(转)
    Java教程收集
    使用wget进行整站下载(转)
  • 原文地址:https://www.cnblogs.com/Jimmy104/p/6096899.html
Copyright © 2011-2022 走看看