版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
谢_待雪*初平、使用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();
}