zoukankan      html  css  js  c++  java
  • 【转载】实现UTF8与GB2312编码格式相互转换(VC)已经验证!

    UTF-8编码:[1,1,1,0,A5,A6,A7,A8],[1,0,B3,B4,B5,B6,B7,B8],[1,0,C3,C4,C5,C6,C7,C8];对应的UNICODE编码:[A5,A6,A7,A8,B3,B4,B5,B6],[B7,B8,C3,C4,C5,C6,C7,C8]CString LogInDlg::GB2312ToUTF8(char *str)
    {
     CString result;
     WCHAR *strSrc = NULL;
     TCHAR *szRes = NULL;
     int i;
     
     //GB2312转换成Unicode
      i = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
      strSrc = new WCHAR[i+1];
      MultiByteToWideChar(CP_ACP, 0, str, -1, strSrc, i);
     
     //Unicode转换成UTF8
     i = WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, NULL, 0, NULL, NULL);
     szRes = new TCHAR[i+1];
     WideCharToMultiByte(CP_UTF8, 0, strSrc, -1, szRes, i, NULL, NULL);
     
     result = szRes;
     if (strSrc != NULL)
     {
      delete []strSrc;
      strSrc = NULL;
     }
     if (szRes != NULL)
     {
      delete []szRes;
      szRes = NULL;
     }
     
     return result;
    }CString LogInDlg::UTF8ToGB2312(char *str)
    {
     CString result;
     WCHAR *strSrc = NULL;
     TCHAR *szRes = NULL;
     int i;
     
     // UTF8转换成Unicode
     i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
     strSrc = new WCHAR[i+1];
     MultiByteToWideChar(CP_UTF8, 0, str, -1, strSrc, i);
     
     // Unicode转换成GB2312
     i = WideCharToMultiByte(CP_ACP, 0, strSrc, -1, NULL, 0, NULL, NULL);
     szRes = new TCHAR[i+1];
     WideCharToMultiByte(CP_ACP, 0, strSrc, -1, szRes, i, NULL, NULL);
     
     result = szRes;
     if (strSrc != NULL)
     {
      delete []strSrc;
      strSrc = NULL;
     }
     if (szRes != NULL)
     {
      delete []szRes;
      szRes = NULL;
     }
     
     return result;
    }

    参考网址:

    http://www.codeproject.com/KB/string/UTF8.aspx

  • 相关阅读:
    跨媒体安全
    kali视频(21-25)学习
    kali视频(26-30)学习
    kali视频(16-20)学习
    kali视频学习(11-15)
    kali视频(1-5)
    使用Metaspoit攻击MS08-067
    web应用程序安全攻防---sql注入和xss跨站脚本攻击
    -区块链-
    TCP/IP网络协议攻击
  • 原文地址:https://www.cnblogs.com/doudongchun/p/3699632.html
Copyright © 2011-2022 走看看