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 }
  • 相关阅读:
    Mybatis源码中最重要的几个类
    学习爬虫-运营商积分
    IntelliJ IDEA 最新版 2019.2.4 激活 (持续更新)(含windows和Mac)
    归并排序之求小和
    归并排序
    理解递归
    插入排序
    对数器
    冒泡排序
    mysql 数据库名称,中间带有中划线问题
  • 原文地址:https://www.cnblogs.com/Jimmy104/p/6096899.html
Copyright © 2011-2022 走看看