在使用CFile 类写文本的时候,结果文本会出现乱码
这是因为Cfile把Unicode字符写了下来,而记事本不知道是Unicode,当作是单字节处理了
所以在写入字符串的时候,长度有就要注意了
CString WriteTmp = _T("");
CTime time = CTime::GetCurrentTime();
WriteTmp.Format(_T("\r\n%.4d-%.2d-%.2d%.2d:%.2d:%.2d\\n"),time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond());
if(FALSE == file.Open(_T(".\\Log.txt"),CFile::modeWrite))
{
Err = OPEN_FAILED;
return false;
}
file.SeekToEnd();
file.Write(WriteTmp,WriteTmp.GetLength()*sizeof(wchar_t));
CString宽字符的真实长度因该是:WriteTmp.GetLength()*sizeof(wchar_t)
时间: 2024-11-08 20:27:01