码迷,mamicode.com
首页 > 其他好文 > 详细

VC中含中英文的\u格式UNICODE字符串转UNICODE可见字符串

时间:2016-04-23 13:10:24      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

JAVA使用UTF-8格式字符串,JAVA与C++通信时将UTF-8串转为UNICODE串,如“ABCDabcd中国人民下沙123.杭州”转为UNICODE后外观如下:

\u41\u42\u43\u44\u61\u62\u63\u64\u4e2d\u56fd\u4eba\u6c11\u4e0b\u6c99\u31\u32\u33\u2e\u676d\u5dde

 VC中如下处理即可转回来

CString CXXClass::UnicodeToString()
{
	CString strUnicode = _T("\\u41\\u42\\u43\\u44\\u61\\u62\\u63\\u64\\u4e2d\\u56fd\\u4eba\\u6c11\\u4e0b\\u6c99\\u31\\u32\\u33\\u2e\\u676d\\u5dde");
	INT iStart = 0, iEnd = 0;
	CString strTmp, strOut;
	TCHAR c;
	BOOL bEnd = FALSE;
	for (INT i = 0; i < strUnicode.GetLength(); ++i)
	{
		iEnd = strUnicode.Find(_T(‘\\u‘), iStart);
		if (iEnd < 0)
		{
			iEnd = strUnicode.GetLength();
			bEnd = TRUE;
		}
		strTmp = strUnicode.Mid(iStart + 1, iEnd - iStart - 1);
		if (!strTmp.IsEmpty())
		{
			swscanf_s(strTmp.GetBuffer(), _T("%x"), &c);
			strTmp.ReleaseBuffer();
			strOut += c;
		}
		iStart = iEnd + 1;
		if (bEnd)
		{
			break;
		}
	}

	return strOut;
}

 应该还有更好的方法,欢迎交流。

VC中含中英文的\u格式UNICODE字符串转UNICODE可见字符串

标签:

原文地址:http://www.cnblogs.com/emacs/p/5424273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!