MFC中解决文本保存到文件时乱码问题

Posted 程序天空下的骆驼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于MFC中解决文本保存到文件时乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP解决中文乱码问题

word有乱码怎么解决

mfc 按钮上乱码问题

解决跨平台中文乱码的问题

怎么解决读取txt文件读取时中文乱码问题

解决ini-parser解析ini文件中文乱码问题