各位大老们,使用CStdioFile写日志文件,如何写入中文信息?        CStdioFile file;
CString val(_T("测试数据"));
CString filename1 = _T("d:\\drxdemo\\DrawSolidDemo\\debug\\log.log");//你的log文件名
if(file.Open(filename1,CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText)==0)
{
AfxMessageBox(_T("error"));
return;
}  DWORD o=file.SeekToEnd();
CTime time1=CTime::GetCurrentTime();
CString m_time=time1.Format("%Y-%m-%d %H:%M:%S");
wchar_t pUEntryPoint[1024];
AsiTOUni(pUEntryPoint, pEentryPoint);
//AsiTOUni(pUComment, pComment);        下面这句,如果写入的不含中文,信息就写入成功,
        可但是,一含有中文,信息就写入错误!!!
file.WriteString(m_time + _T("我的女人") + pUEntryPoint + _T(":") + _T("我\n"));

解决方案 »

  1.   

    写进去乱玛还是没写进去?
    程序是unicode编译?
      

  2.   

    你这里pUEntryPoint似乎是空的啊。
      

  3.   

    CStdioFile生成的字符串好像是ANSI编码的吧。
      

  4.   

    解决方法: 
    第1步 CFile::typeText改为CFile::typeBinary
    第2步 在file.WriteString()前加上这句: file.Write("\377\376", 2);
      

  5.   


    等于\x0FF\x0FE写UNICODE的BOM头,这样再打开文件的时候一般软件都以UNICODE方式打开.