文本操作编码问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本操作编码问题相关的知识,希望对你有一定的参考价值。
在使用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)
以上是关于文本操作编码问题的主要内容,如果未能解决你的问题,请参考以下文章
在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题