zoukankan      html  css  js  c++  java
  • Gbk互相转换UTF8

     1 /**********************************************************************
     2 * 函数名称:    GbkToUtf8
     3 * 功能描述:  Gbk转化为UTF8
     4 * 输入参数:  需要转化的字符串(Gbk)
     5 * 输出参数:  转化后的字符串(UTF-8)
     6 * 返 回 值:  无
     7 * 其它说明:  
     8 * 修改日期 版本号 修改人 修改内容
     9 * -----------------------------------------------
    10 * 
    11 ***********************************************************************/
    12 string GbkToUtf8(const std::string &strGBK)
    13 {
    14     string strOutUTF8 = "";
    15     WCHAR *str1;
    16     int n = MultiByteToWideChar(CP_ACP,0,strGBK.c_str(),-1,NULL,0);
    17     str1 = new WCHAR[n];
    18     MultiByteToWideChar(CP_ACP,0,strGBK.c_str(),-1,str1,n);
    19     n = WideCharToMultiByte(CP_UTF8,0,str1,-1,NULL,0,NULL,NULL);
    20     char *str2 = new char[n];
    21     WideCharToMultiByte(CP_UTF8,0,str1,-1,str2,n,NULL,NULL);
    22     strOutUTF8 = str2;
    23     delete[]str1;
    24     str1 = NULL;
    25     delete[]str2;
    26     str2 = NULL;
    27     return strOutUTF8;
    28 }
    29 
    30 /**********************************************************************
    31 * 函数名称:    Utf8ToGbk
    32 * 功能描述:  UTF8转化为Gbk
    33 * 输入参数:  需要转化的字符串(utf8)
    34 * 输出参数:  转化后的字符串(Gbk)
    35 * 返 回 值:  无
    36 * 其它说明:  
    37 * 修改日期 版本号 修改人 修改内容
    38 * -----------------------------------------------
    39 * 
    40 ***********************************************************************/
    41 string Utf8ToGbk(const std::string & strUTF8)
    42 {
    43         string strOutGBK = "";
    44         WCHAR *str1;
    45         int n = MultiByteToWideChar(CP_UTF8,0,strUTF8.c_str(),-1,NULL,0);
    46         str1 = new WCHAR[n];
    47         MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, str1, n);
    48         n = WideCharToMultiByte(CP_ACP, 0, str1, -1, NULL, 0, NULL, NULL);
    49         char *str2 = new char[n];
    50         WideCharToMultiByte(CP_ACP, 0, str1, -1, str2, n, NULL, NULL);
    51         strOutGBK = str2;
    52         delete[]str1;
    53         str1 = NULL;
    54         delete[]str2;
    55         str2 = NULL;
    56         return strOutGBK;
    57 }

    更多内容请访问 www.uusystem.com

  • 相关阅读:
    814. Binary Tree Pruning
    50. Pow(x, n)
    698. Partition to K Equal Sum Subsets
    416. Partition Equal Subset Sum
    150. Evaluate Reverse Polish Notation
    322. Coin Change
    Vulnerable Kerbals CodeForces
    D. Domino for Young
    C. Long Beautiful Integer
    B. Modulo Equality
  • 原文地址:https://www.cnblogs.com/tianjifa/p/10442395.html
Copyright © 2011-2022 走看看