MFC中解决文本保存到文件时乱码问题
在高版本的VS中,若直接将CString保存到文本文件中,可能会出现乱码问题
原因就在于项目的编码跟系统的默认编码不同(Unicode和GB2312),这个时候使用如下代码,即可解决。
unsigned char CharSet[2]; //写入文件字符编码(UTF)
CharSet[0]=0xFF;
CharSet[1]=0xFE;
InFile.Write(CharSet,sizeof(CharSet));
到这里呢,可以解决乱码的问题,但是,很可能出现内容只剩下一半的情况,那是因为CFile是面向字节的,大小是以字节为单位,但是CString是以双字节为单位(Unicode),此时可以使用如下代码解决
InFile.Write(FileContent,FileContent.GetLength()*2);
//默认Unicode,转换为Byte时乘以2