vc++6.0 将CString 转换成 Unicode 的字符串,ANSI编码 和 unicode编码 互转
2010-09-08 10:01
507 查看
一. 使用vc++6.0 调用vs2008 c++写的dll,6.0默认的编码是ANSI编码,2008默认的都是unicode编码,所以参数处理的时候会有问题。
下面是两种方法将cstring转成unicode的
方法1:
方法2(我使用的:)
二、如果你用的是vc6.0调用vs2008,就是ansi编码的调用unicode编码的函数,返回来的是unicode的值,需要将unicode转换成ansi编码。相反可以用这个MultiByteToWideChar函数。
下面是两种方法将cstring转成unicode的
方法1:
//ANSI字符转为Unicode字符,用MultiByteToWideChar CString strTmp; CString m_ANSI = "你好!测试,hello"; DWORD dwNum; dwNum = MultiByteToWideChar(CP_ACP, 0, m_ANSI, -1, NULL, 0); wchar_t *pwText; pwText = new wchar_t[dwNum]; dwNum = MultiByteToWideChar(CP_ACP, 0, m_ANSI, -1, pwText, dwNum); //unicode内容在pwText中,下面显示代码 CString m_Unicode = ""; for(int i = 0; i < (int)dwNum - 1; i++) { strTmp.Format("%04X ", pwText[i]); m_Unicode += strTmp; } delete[] pwText;
方法2(我使用的:)
CString str= "sfdkjasfdjk "; BSTR bstr=str.AllocSysString(); //bstr就是UNICODE文本了! //用完以后要释放 SysFreeString(bstr);
二、如果你用的是vc6.0调用vs2008,就是ansi编码的调用unicode编码的函数,返回来的是unicode的值,需要将unicode转换成ansi编码。相反可以用这个MultiByteToWideChar函数。
wcharText = new char[4000]; GetPageText(i,wcharText, nTxtLen);//调用函数以后变成了wchar,就是unicode编码的 int nBufLen = WideCharToMultiByte(936, 0, (const unsigned short *)wcharText, -1, NULL, 0, NULL, NULL); char* charTxt = new char[nBufLen]; WideCharToMultiByte(936, 0, (const unsigned short *)wcharText, -1, charTxt, nBufLen, NULL, NULL);
参考:
1.http://www.cnitblog.com/_skyfly/archive/2010/09/06/2657.html 我最近正在将以前的项目转为UNICODE编码格式
2.http://blog.csdn.net/massice/archive/2009/10/09/4647613.aspx 临时记录--MultiByteToWideChar,WideCharToMultiByte
3.调试vc6.0
相关文章推荐
- CString类型转换,字符串操作和UNICODE、ANSI字符集
- Unicode编码与汉字字符串的转换
- Unicode编码和ANSI编码相互转换
- python的string与Unicode转换,gbk字符串编码
- 字符串编码之间的转换(GB2312<->UTF8<->Unicode)及URLEncoding .
- VS2008可否配置代码中字符串的编码是ANSI编码不用Unicode编码?
- CString类型转换,字符串操作和UNICODE、ANSI字符集
- 把unicode编码的十六进制字符串转换为汉字(Python2.7)
- VC++中字符串转换CString, char*, BSTR, 多字节,unicode字符集转换的问题
- 移植性问题のCString类型转换,字符串操作和UNICODE、ANSI字符集
- CStringLocaleHelper : 一个用于UTF8和UNICODE字符串转换的辅助类
- 字符串编码格式相互转换Unicode --UTF-8 -- GBK
- 字符串与Unicode编码的相互转换
- 把普通字符串转换成Unicode编码?
- Unicode字符串与CString字符串之间的互相转换
- JavaScript中字符串与Unicode编码的互相转换
- Python中unicode编码的字符串和其他格式的字符串之间进行转换
- 将CString字符串写入Unicode编码的txt文件
- CString与LPCWSTR、LPSTR、char*、LPWSTR等类型的转换 (UNICODE版本字符串转换为Ansi版本)
- Unicode下整型数与字符串,CString 转换例程