+ -
当前位置:首页 → 问答吧 → 读取文件的问题

读取文件的问题

时间:2011-12-20

来源:互联网

程序下载了一个 htm文件, htm是UTF8编码的, 下载下来是正确的没有乱码, 但是 用 
Open(fileurl, CFile::modeReadWrite | CFile::typeBinary)==NULL) 读到程序中后 就会出现乱码, 所有的中文都是乱码,
这样怎么读入才能解决呢? 感谢,带个例子啊,

急救。感谢。




读出在转码的方法我试过了, 会有字符丢失,。其它方法。非常感谢。100分奉上!

作者: xrq001   发布时间: 2011-12-20

求例子, 读HTM不乱码, 写入文件时也不乱码的。感谢。非常感谢。

作者: xrq001   发布时间: 2011-12-20

CString CodeTyp=L"UTR_8";
file.Read(pBuf,iLen);
if(CodeTyp==L"ANSI") CString str1(pBuf); 
if(CodeTyp==L"UTF8") CString str1=CA2W(pBuf,CP_UTF8); strRet=str1;

作者: chinatcp   发布时间: 2011-12-20

引用 2 楼 chinatcp 的回复:
CString CodeTyp=L"UTR_8";
file.Read(pBuf,iLen);
if(CodeTyp==L"ANSI") CString str1(pBuf);
if(CodeTyp==L"UTF8") CString str1=CA2W(pBuf,CP_UTF8); strRet=str1;

新手啊, 看不明白。感谢 详细点行不?

作者: xrq001   发布时间: 2011-12-20

C/C++ code


//获得文本内容(全部文本),
//CString strF=CFileLib::GetTxtALL(L"E:\\TEMP\\utf8.txt");
CString CFileLib::GetTxtALL(CString txtPath,CString CodeTyp)
{
    CString strRet=L"";
    CFile file(txtPath,CFile::modeRead);
    char *pBuf;
    int iLen=file.GetLength();
    pBuf=new char[iLen+1];
    file.Read(pBuf,iLen);
    pBuf[iLen]=0;
    if(CodeTyp==L"ANSI") { CString str1(pBuf); strRet=str1; }  //ansi格式
    if(CodeTyp==L"UTF8") { CString str1=CA2W(pBuf,CP_UTF8); strRet=str1; }  //utf-8格式
    
    delete[] pBuf; pBuf=NULL;
    file.Close();
    return strRet;
}


作者: chinatcp   发布时间: 2011-12-20

读的字符串要自己再编码转换

作者: oyljerry   发布时间: 2011-12-20

引用 5 楼 oyljerry 的回复:
读的字符串要自己再编码转换

我试过了 在转码 有会HTM标签 会丢失,HTM就不完整了

作者: xrq001   发布时间: 2011-12-20

读出在转码为啥会有字符丢失?你用二进制方式读进来就是原始的UTF8编码数据,不会有任何损耗的。你所谓的丢失字符应该是你转出的编码和你的程序用的不一样,所以转换成字符串时出问题了,转成MBCS还是UNICODE是由你程序使用的编码决定的。

作者: kyotrue   发布时间: 2011-12-20

引用 4 楼 chinatcp 的回复:
C/C++ code


//获得文本内容(全部文本),
//CString strF=CFileLib::GetTxtALL(L"E:\\TEMP\\utf8.txt");
CString CFileLib::GetTxtALL(CString txtPath,CString CodeTyp)
{
CString strRet=L"";
CFile file(tx……


chinatcp 你的方法 果然可以 高手啊, 读入文件的好了, 能帮我 写一个 怎么把这UTF8 字符 在写出文件吗? 还是写成UTF8的 HTM 文件,感谢了,。 给个例子吧, 感谢。感谢。分给你。

作者: xrq001   发布时间: 2011-12-20

如果不是必须的话 你为什么不 用工具转了后再读呢...

作者: bingying19872008   发布时间: 2011-12-20