C++编程 Unicode转换成中文

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/wangduanqiugao/article/details/102741914

谢_待雪*初平、使用VS2019编写Unicode转换成中文,即:UnicodeToChinese

输入:\u5f85\u96ea\u521d\u5e73\u548c\u671b\u65ad\u79cb\u9ad8

输出:待雪初平和望断秋高

C++控制台项目:Unicode和中文的相互转换——下载地址:

https://download.csdn.net/download/wangduanqiugao/11924338

VS2019的C++控制台项目(x64\x86\Debug\Release已编译)

#include <atlstr.h>
#include <string.h>
#include <iostream>
using namespace std;

bool UnicodeToChinese(string str, CString&  cstr)
{
    int i = 0;
    int j = 0;
    int len = 0;

    len = str.length();
    if (len <= 0)
    {
	return false;
    }

    int nValue = 0;
    WCHAR * pWchar;
    wchar_t* szHex;
    char strchar[6] = { '0','x','\0' };

    for (i = 0; i < len; i++)
    {
	if (str[i] == 'u')
	{
	    for (j = 2; j < 6; j++)
	    {
		i++;
		strchar[j] = str[i];
	    }

	    USES_CONVERSION;
	    szHex = A2W(strchar);

	    StrToIntExW(szHex, STIF_SUPPORT_HEX, &nValue);
	    pWchar = (WCHAR*)& nValue;

	    cstr = cstr + pWchar;
         }
    }
    return true;
}

int main()
{
    string  m_Unicode = "\\u5f85\\u96ea\\u521d\\u5e73\\u548c\\u671b\\u65ad\\u79cb\\u9ad8";
    CString m_UnicodeToChinese;

    //UnicodeToChinese
    UnicodeToChinese(m_Unicode, m_UnicodeToChinese);

    wcout.imbue(locale("chs"));
    cout << m_Unicode << "\n" << "UnicodeToChinese:" << "\n";
    wcout << m_UnicodeToChinese.GetString() << endl;
    getchar();
}

猜你喜欢

转载自blog.csdn.net/wangduanqiugao/article/details/102741914
今日推荐