如题:
我收到的数据是 Utf8的数据。
四字节:
BYTE pdata[]={0x44,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x75,0x00,0x00,0x00};
2007年的旧贴中,有一解题方法:
http://topic.csdn.net/u/20070522/20/5150F907-2B2F-4B8E-B1F2-716767001FEA.html
这个是采用手工,三字节合并的。不是用系统 MultiByteToWideChar 实现的。我想问,MultiByteToWideChar 这个不能逆回来吗?我的代码:
int CToolFun::AnsistrToWidestr(char *pIn,wchar_t *pOut, int noutsize)
{
int nc=MultiByteToWideChar(CP_UTF8,0,pIn,-1,NULL,0);
if (nc>0) {
nc = MultiByteToWideChar(CP_UTF8,0,pIn,-1,pOut,noutsize);
}
return nc;
}
解出来的,是8字节长度的数据。也就是一个 0x44,00,00,00 变成了 0x44,00,00,00,00,00,00,00
晕啊,这是什么东西啊
我收到的数据是 Utf8的数据。
四字节:
BYTE pdata[]={0x44,0x00,0x00,0x00,0x65,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x75,0x00,0x00,0x00};
2007年的旧贴中,有一解题方法:
http://topic.csdn.net/u/20070522/20/5150F907-2B2F-4B8E-B1F2-716767001FEA.html
这个是采用手工,三字节合并的。不是用系统 MultiByteToWideChar 实现的。我想问,MultiByteToWideChar 这个不能逆回来吗?我的代码:
int CToolFun::AnsistrToWidestr(char *pIn,wchar_t *pOut, int noutsize)
{
int nc=MultiByteToWideChar(CP_UTF8,0,pIn,-1,NULL,0);
if (nc>0) {
nc = MultiByteToWideChar(CP_UTF8,0,pIn,-1,pOut,noutsize);
}
return nc;
}
解出来的,是8字节长度的数据。也就是一个 0x44,00,00,00 变成了 0x44,00,00,00,00,00,00,00
晕啊,这是什么东西啊
解决方案 »
- 为什么printf可以打印中文,而wprintf却一定要setlocale才能正确打印?
- vc 如何录制flash control播放出来的声音
- 给一个读写txt文件的例子,别太复杂,最好有注释---谢谢了
- open()函数的问题
- 在 release 方式下,map文件有用吗?
- 关于ListCtrl的nSubItem问题
- AddPrinterDriver API哪位老大能给个详细的sample
- 一个对高手来说很简单的问题,放了好久也没有看,好气人哪(有40分)
- 急!!请高手说说鼠标钩子函数的参数,手头没有MSDN.
- 我想用ON_COMMAND_RANGE宏,但几个控件的ID值不连续怎么办?
- VC中怎样用代码打开压缩文件啊?
- CHtmlView類怎實現後台模擬鼠標?
if(m_UTF8)
{// utf8 file
MultiByteToWideChar(CP_UTF8,0,szBuf,-1,wBuf,2048);// utf8到unicode
WideCharToMultiByte(CP_ACP,0,wBuf,-1,szBuf,2048,0,0);//unicode到mbcs
pLine=szBuf;
}
我不知道,我那个四节字的编码,是不是utf32的哦?
/*
EF BB BF UTF-8
FE FF UTF-16/UCS-2, little endian
FF FE UTF-16/UCS-2, big endian
FF FE 00 00 UTF-32/UCS-4, little endian.
00 00 FE FF UTF-32/UCS-4, big-endian.
*/
if(m_UTF8)
{// utf8 file
MultiByteToWideChar(CP_UTF8,0,szBuf,-1,wBuf,2048);// utf8到unicode
WideCharToMultiByte(CP_ACP,0,wBuf,-1,szBuf,2048,0,0);//unicode到mbcs
pLine=szBuf;
}
//---------------------------------------------------
当然,我的工程是Unicode 版的,所以只用 MtoW 第一步就OK了。
谢了哈,现在去给分。