MFC项目采用Unicode编码,读取文本数据乱码转换函数
来源:互联网 发布:jquery.media.js 编辑:程序博客网 时间:2024/04/29 16:05
当MFC项目采用Unicode时,CStdioFile.ReadString读取到数据都是Unicode编码的,必须进行转换,不然就是乱码
// 字节数据转换成Unicode编码
int CharToUnicode(char *pchIn, CString *pstrOut)
{
int nLen;
WCHAR *ptch;
if(pchIn == NULL)
{
return 0;
}
nLen = MultiByteToWideChar(CP_ACP, 0, pchIn, -1, NULL, 0);//CP_ACP是本地机器Local属性
//可以修改成指定语言GB2312 936. Shift-JIS 932 UTF-8 65001.
ptch = new WCHAR[nLen];
MultiByteToWideChar(CP_ACP, 0, pchIn, -1, ptch, nLen);
pstrOut->Format(_T("%s"), ptch);
delete [] ptch;
return nLen;
}
实现CString的编码改变。使之能够显示成本地语言。
void function(CString &str)
{
char *szBuf = new char[str.GetLength()+1];
int i;
for (i = 0 ; i < str.GetLength(); i++)
{
szBuf[i] = str.GetAt(i);
}
szBuf[i]='/0';
CharToUnicode(szBuf , &str);
delete []szBuf;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 将Unicode字符转换为Char型字符
int UnicodeToChar(CString &strIn, char *pchOut, int nCharLen)
{
if(pchOut == NULL)
{
return 0;
}
int nLen = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)strIn.GetBuffer(BUFFER_SIZE_KILO),-1, NULL, 0, NULL, NULL);
nLen = min(nLen, nCharLen);
WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)strIn.GetBuffer(BUFFER_SIZE_KILO), -1, pchOut,
nLen, NULL, NULL);
if(nLen < nCharLen)
{
pchOut[nLen] = 0;
}
return nLen;
}
- MFC项目采用Unicode编码,读取文本数据乱码转换函数
- C#文本编码转换及读取文本编码方法
- MFC Unicode编码实现文本复制到剪贴板
- delphi2007 读取得unicode文本显示出来时乱码?
- JS中文字符串转换unicode编码函数
- JS中文字符串转换unicode编码函数
- PHP读取xml乱码 | 编码转换 mb_convert_encoding
- 采用vb以十六进制的形式读取文本文档数据
- CStdioFileEx读取Unicode文本
- C++读取unicode文本
- C++读取unicode文本
- VC Unicode编码转换为UTF8编码的函数
- MFC UNICODE项目CFILE写html文件乱码解决
- MFC 在非unicode的工程下,读取unicode编码的txt
- 能读取Unicode编码格式的ReadString和WriteString函数
- mfc ansi unicode转换
- 乱码转换为 Unicode
- unicode,ansi编码转换
- C#中处理XML文档的方法
- 在Ubuntu Linux的控制台下使用中文
- 001-0001 asp.net的学习顺序建议
- svn安装与配置
- MISRA C指导指南解读系列6(MISRA C规则46-67)
- MFC项目采用Unicode编码,读取文本数据乱码转换函数
- 给android模拟器安装虚拟SDCard
- VS2005 出问题了。。在浏览器中查看。。无法使用
- Cover Flow 期待已久!
- struts2 字符截取
- MinGW 与 DEV c++
- 【网络】MFC实现Ping命令的界面操作
- 静态工厂方法月用new调用的构造方法的区别
- DHC log 2009-4-28