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 }
  • 相关阅读:
    委托
    队列和栈、泛型
    Java去除字符串中 除数字和逗号以外的符号
    SQL查询重复记录
    使用EasyExcel导出图片及异常处理
    Nacos开机自启
    Redis开机自启
    Nginx开机自启
    Java 向数组中添加元素
    Java:如何打印整个字符串数组?
  • 原文地址:https://www.cnblogs.com/Jimmy104/p/6096899.html
Copyright © 2011-2022 走看看