谢_望断*秋高、使用VS2019编写中文转换成Unicode,即:ChineseToUnicode
输入:望断秋高和待雪初平
输出:\u671b\u65ad\u79cb\u9ad8\u548c\u5f85\u96ea\u521d\u5e73
C++控制台项目:Unicode和中文的相互转换——下载地址:
https://download.csdn.net/download/wangduanqiugao/
VS2019的C++控制台项目(x64\x86\Debug\Release已编译)
#include
#include
#include
using namespace std; bool ChineseToUnicode(CString cstr, string & str) { int i = 0; int strlen = 0; int hexlen = 0; long hexlong = 0; strlen = cstr.GetLength(); if (strlen <= 0) { return false; } wchar_t* wchs = new wchar_t[strlen + 1]; memset(wchs, 0, sizeof(wchar_t) * (strlen + 1)); wcscpy_s(wchs, strlen + 1, cstr.GetBuffer(strlen)); hexlen = strlen * 7; char* hexstr = new char[hexlen + 1]; memset(hexstr, 0, hexlen + 1); char tchar[7]; wchar_t* szHex = wchs; for (i = 0; i < strlen; i++) { hexlong = (long)(*szHex++); sprintf_s(tchar, "\\u%04x", hexlong); strcat_s(hexstr, hexlen, tchar); } str = (string)hexstr; if (wchs) { delete[] wchs; } if (hexstr) { delete[] hexstr; } return true; } int main() { CString m_Chinese = _T("望断秋高和待雪初平"); string m_ChineseToUnicode; //ChineseToUnicode ChineseToUnicode(m_Chinese, m_ChineseToUnicode); wcout.imbue(locale("chs")); wcout << m_Chinese.GetString() << endl; cout << "ChineseToUnicode:" << "\n" << m_ChineseToUnicode << "\n\n\n"; getchar(); }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222219.html原文链接:https://javaforall.net
