hur.cn - 华软网

 热门搜索

打开文件中文怎么都成乱码了阿

  作者:未知    来源:网络    更新时间:2011/9/28
C++">

CString lpName = "C:\\asd\\TEMP.txt";
CStdioFile   m_readfile; 
CString   m_strTemp,m_strText; 
m_readfile.Open(lpName,CFile::modeRead,NULL);   
while(m_readfile.ReadString(m_strTemp)) 
m_strText+=m_strTemp+ "\r\n ";     // <----- "\r\n " 

MessageBox(m_strText);

文件的理的中文不能正常显示阿
用记事本打开完全正常
请帮忙
---华软 网友回答---
用记事本打开,然后点击另存为,下面会有编码方式,你可以看看这个编码方式是什么 如果不是gb2312是utf8 那么中文会乱码
---华软网友回复---
下面是全部代码

CString lpUrl = "http://topic.csdn.net/u/20110928/09/edfc18fa-5d41-474e-b790-f6908a9d6e1e.html?81269";
CString lpName = L"C:\\asd\\4.txt";
if (URLDownloadToFile(NULL,lpUrl,lpName,0,NULL)==S_OK)
MessageBox("yes");


CStdioFile   m_readfile; 
CString   m_strTemp,m_strText; 
m_readfile.Open(lpName,CFile::modeRead,NULL);   
while(m_readfile.ReadString(m_strTemp)) 
m_strText+=m_strTemp+ "\r\n ";     // <----- "\r\n " 

MessageBox(m_strText);
---华软网友回复---
下载保存后再打开中文就成乱码了 
---华软网友回复---
看了文件中的编码方式吗?
---华软网友回复---
不是gb2312也不是是utf8 
---华软网友回复---
用ue打开文件 ,看看文件头,也能判断出编码格式
---华软网友回复---
估计你要打开的文件默认编码是ANSI码,而你用CStdioFile方式打开文件用的是Unicode,所以出现了乱码,你还是用FILE打开文件吧。
---华软网友回复---
csdn默认是utf-8编码,你应该另存为ansi的再显示
引用 2 楼 ling1980 的回复:
下面是全部代码

CString lpUrl = "http://topic.csdn.net/u/20110928/09/edfc18fa-5d41-474e-b790-f6908a9d6e1e.html?81269";
CString lpName = L"C:\\asd\\4.txt";
if (URLDownloadToFile(NULL,lpUrl,lpName,0,NULL)=……

---华软网友回复---
好像是是utf-8
---华软网友回复---
不要用CStdioFile
用CFile按二进制文件读取试试
---华软网友回复---
试试用   AfxMessageBox(_T(m_strText));  打开看看,应该可以
---华软网友回复---
CFile和AfxMessageBox(_T(m_strText));都试了不行

下载的文件用记事本打开可以正常显示

CFile file("C:\\asd\\4.txt",CStdioFile::modeRead); 
int iLength =file.GetLength(); 
CString str; 
file.Read(str.GetBufferSetLength(iLength),iLength); 
AfxMessageBox(_T(str));中文还是显示乱码

---华软网友回复---
url的东西,一般都是utf8的,前面写入bom头吧。

---华软网友回复---
在记事本里可以正常为什么到EDIT里面就成乱码了阿
---华软网友回复---
将UTF-8转为GBK, 然后显示.
---华软网友回复---
将UTF-8转为GBK大部分会显示
但是个别汉字后面还会有有些其他的符号
---华软网友回复---
没人知道吗?      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。