在VS2005中:
CStdioFile f;
if(!f.Open(_T("test.txt", CFile::typeText|CFile::modeRead))return;
CString s;
f.ReadString(s);
AfxMessageBox(s);为何英文能正确显示,而中文显示的是乱码?我用的是VS2005,好像VS2005中的CString和以前版本有些不同?用记事本打开test.txt的话是正确显示的.
CStdioFile f;
if(!f.Open(_T("test.txt", CFile::typeText|CFile::modeRead))return;
CString s;
f.ReadString(s);
AfxMessageBox(s);为何英文能正确显示,而中文显示的是乱码?我用的是VS2005,好像VS2005中的CString和以前版本有些不同?用记事本打开test.txt的话是正确显示的.
存入文件时,再调用WideCharToMultiByte
这是怎么加事呀,真要命...
除了CStdioFile外有没其它的类可以从文件读取一行字符串的.
首先明确两件事情:1、你的工程是不是 Unicode ?2、你的文件是不是 Unicode ?
如果对 Unicode 没有概念,请看《Windows程序设计》第二章“Unicode简介”下载地址:http://blog.csdn.net/zaodt/archive/2007/11/25/1901332.aspx
文件是ansi格式的.
MultiByteToWideChar 函数大概的使用方法:1、第一遍调用计算转换后需要的字符数;2、动态申请内存,就是建立一个数组;3、第二遍调用进行转换;