文本操作编码问题

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)

以上是关于文本操作编码问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在二进制操作码指令中编码 ASCII 文本?

在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题

JAVA之编码---- CSV在文本下是正常的,用EXCEL打开是乱码的问题

PHP操作CSV文件的编码问题

字符编码文件操作函数定义

Java 之 IO操作—— 文本数据的编码和解码