请问如何将16进制的UTF8编码转换成中文?

dduummoo 2014-05-21 03:08:00
比如 一个二进制文件的内容是 E4 BB 8A E5 A4 A9 ,用一个byte数组去读
E4 BB 8A是UTF8的“今”
E5 A4 A9是UTF8的“天”
我最终想把这段内容转换成cstring类型的“今天”并输出,应该怎么做?
需要转换的部分长度已知,比如这个例子下长度是6
...全文
1608 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
_船长_ 2014-05-21
  • 打赏
  • 举报
回复
引用 3 楼 dduummoo 的回复:
[quote=引用 2 楼 VisualEleven 的回复:]
char szText[] = {0xE4, 0xBB, 0x8A, 0xE5, 0xA4, 0xA9, 0x00};
	wchar_t* szBuf = NULL;
	int nlen = MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, 0);
	szBuf = new wchar_t[nlen];
	MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, nlen);
	CString strText(szBuf);
	AfxMessageBox(strText);
	delete[] szBuf;
	szBuf = NULL;
谢谢版主,MultiByteToWideChar这个函数里第三个参数是char*类型的,我用的是byte*,于是我用for循环了sprintf把整个byte数组转到另一个char数组里,之后再按你这样来,效果还可以。 不过感觉还要循环一趟有些麻烦,于是我还想请教,有比sprintf更简单好用的方式吗? [/quote] byte *即为unsigned char *类型,而char类型编译器默认是signed char,只需要设置一下编译设置,VS08 工程 --> 属性 --> C/C++ --> 语言,这样你程序中定义的所有char 类型,都是unsigned char 即byte类型
schlafenhamster 2014-05-21
  • 打赏
  • 举报
回复
char szText[] = {0xE4, 0xBB, 0x8A, 0xE5, 0xA4, 0xA9, 0x00}; 就是 被转换 的 若是 byte * 的: (char*) 转换 一下 就可以了
dduummoo 2014-05-21
  • 打赏
  • 举报
回复
引用 2 楼 VisualEleven 的回复:
char szText[] = {0xE4, 0xBB, 0x8A, 0xE5, 0xA4, 0xA9, 0x00};
	wchar_t* szBuf = NULL;
	int nlen = MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, 0);
	szBuf = new wchar_t[nlen];
	MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, nlen);
	CString strText(szBuf);
	AfxMessageBox(strText);
	delete[] szBuf;
	szBuf = NULL;
谢谢版主,MultiByteToWideChar这个函数里第三个参数是char*类型的,我用的是byte*,于是我用for循环了sprintf把整个byte数组转到另一个char数组里,之后再按你这样来,效果还可以。 不过感觉还要循环一趟有些麻烦,于是我还想请教,有比sprintf更简单好用的方式吗?
Eleven 2014-05-21
  • 打赏
  • 举报
回复
char szText[] = {0xE4, 0xBB, 0x8A, 0xE5, 0xA4, 0xA9, 0x00};
	wchar_t* szBuf = NULL;
	int nlen = MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, 0);
	szBuf = new wchar_t[nlen];
	MultiByteToWideChar(CP_UTF8, 0, szText, -1, szBuf, nlen);
	CString strText(szBuf);
	AfxMessageBox(strText);
	delete[] szBuf;
	szBuf = NULL;
Eleven 2014-05-21
  • 打赏
  • 举报
回复
MultiByteToWideChar(CP_UTF8, ...);

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧