如何把这一Unicode编码(中文,字母等)转化后赋给CString变量,从而正常显示? 内容为"65e08fb9843d6728842784274e0b7468697320697320612074657374" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.下面这个是从Unicode到Ansi的换: unsigned char buf[129]; //发送缓冲区 ZeroMemory(buf,sizeof(buf)); //缓冲区清零 CString tmpstr(str); //复制要发送的字符串 int multibytelen=WideCharToMultiByte( //计算从Unicode转换到Ansi后需要的字节数 CP_ACP, //根据ANSI code page转换 WC_COMPOSITECHECK | WC_DEFAULTCHAR, //转换出错用缺省字符代替 tmpstr.GetBuffer(str.GetLength()), //要转换的字符串地址 str.GetLength(), //要转换的个数 0, //转换后字符串放置的地址 0, //最多转换字符的个数,为0表示返回转换Unicode后需要多少个字节 0, //缺省)2.下面这个是从Ansi到Unicode的换: int widecharlen=MultiByteToWideChar( //计算从Ansi转换到Unicode后需要的字节数 CP_ACP, MB_COMPOSITE, szBuf, //要转换的Ansi字符串 -1, //自动计算长度 0, 0 ); unsigned char szBuff[MAX_BUFF]; ZeroMemory(szBuff,sizeof(szBuff)); MultiByteToWideChar( //从Ansi转换到Unicode字符 CP_ACP, MB_COMPOSITE, szBuf, -1, (LPWSTR)szBuff, //转换到tmpstr widecharlen //最多转换widecharlen个Unicode字符 ); to : 54783szg(浪淘沙) 方法1 编译时有错误啊;是否能给个能运行得实例? 将ANSI转换到Unicode(1)通过L这个宏来实现,例如: CLSIDFromProgID( L"MAPI.Folder",&clsid);(2)通过MultiByteToWideChar函数实现转换,例如:char *szProgID = "MAPI.Folder";WCHAR szWideProgID[128];CLSID clsid;long lLen = MultiByteToWideChar(CP_ACP,0,szProgID,strlen(szProgID),szWideProgID,sizeof(szWideProgID));szWideProgID[lLen] = '\0'; (3)通过A2W宏来实现,例如: USES_CONVERSION; CLSIDFromProgID( A2W(szProgID),&clsid); 将Unicode转换到ANSI(1)使用WideCharToMultiByte,例如:// 假设已经有了一个Unicode 串 wszSomeString... char szANSIString [MAX_PATH]; WideCharToMultiByte ( CP_ACP, WC_COMPOSITECHECK, wszSomeString, -1, szANSIString, sizeof(szANSIString), NULL, NULL ); (2)使用W2A宏来实现,例如:USES_CONVERSION;pTemp=W2A(wszSomeString); 添加对ADO的支持代码时出错 【讨论】Windows的窗口是如何绘制的? 窗口绘图问题 请教:编程如何显示空心三角形 如何导入一个位图作为ToolBar资源呀? 问一个关于vc7和vc6的关于memcpy很菜的问题!解决后在给分,谢了 如何在CView中得到CMainFrame中的成员变量值 VC++ Combo box 控件如何实现动态绑定数据库? 如何在对话框1上镶嵌一个对话框2? 怎样把UINT类型转换成int类型 【求助】如何禁止EDIT中输入中文 问题确实简单,不过还请不吝赐教:)Left函数,需要调用哪个h文件?
unsigned char buf[129]; //发送缓冲区
ZeroMemory(buf,sizeof(buf)); //缓冲区清零
CString tmpstr(str); //复制要发送的字符串
int multibytelen=WideCharToMultiByte( //计算从Unicode转换到Ansi后需要的字节数
CP_ACP, //根据ANSI code page转换
WC_COMPOSITECHECK | WC_DEFAULTCHAR, //转换出错用缺省字符代替
tmpstr.GetBuffer(str.GetLength()), //要转换的字符串地址
str.GetLength(), //要转换的个数
0, //转换后字符串放置的地址
0, //最多转换字符的个数,为0表示返回转换Unicode后需要多少个字节
0, //缺省
)
2.下面这个是从Ansi到Unicode的换:
int widecharlen=MultiByteToWideChar( //计算从Ansi转换到Unicode后需要的字节数
CP_ACP,
MB_COMPOSITE,
szBuf, //要转换的Ansi字符串
-1, //自动计算长度
0,
0
);
unsigned char szBuff[MAX_BUFF];
ZeroMemory(szBuff,sizeof(szBuff));
MultiByteToWideChar( //从Ansi转换到Unicode字符
CP_ACP,
MB_COMPOSITE,
szBuf,
-1,
(LPWSTR)szBuff, //转换到tmpstr
widecharlen //最多转换widecharlen个Unicode字符
);
方法1 编译时有错误啊;
是否能给个能运行得实例?
(1)通过L这个宏来实现,例如: CLSIDFromProgID( L"MAPI.Folder",&clsid);
(2)通过MultiByteToWideChar函数实现转换,例如:
char *szProgID = "MAPI.Folder";
WCHAR szWideProgID[128];
CLSID clsid;
long lLen = MultiByteToWideChar(CP_ACP,0,szProgID,strlen(szProgID),szWideProgID,sizeof(szWideProgID));
szWideProgID[lLen] = '\0';
(3)通过A2W宏来实现,例如:
USES_CONVERSION;
CLSIDFromProgID( A2W(szProgID),&clsid);
将Unicode转换到ANSI
(1)使用WideCharToMultiByte,例如:
// 假设已经有了一个Unicode 串 wszSomeString...
char szANSIString [MAX_PATH];
WideCharToMultiByte ( CP_ACP, WC_COMPOSITECHECK, wszSomeString, -1, szANSIString, sizeof(szANSIString), NULL, NULL );
(2)使用W2A宏来实现,例如:
USES_CONVERSION;
pTemp=W2A(wszSomeString);