前提:VS2010 ,MFC ,文本文件为ANSI格式。

读文件:

CString str,fileContent;
CStdioFile myFile, File;
if(myFile.Open(GeneralUtils::GetModuleDir()+_T(\\mx.txt), CFile::modeRead))
{
 //读取
 while(myFile.ReadString(str))
 {
  str = str + _T("\n");
  ReadStringCharToUnicode(str);
  fileContent = fileContent + str;
 }
 myFile.Close();
}

写文件:

*.h

#include <locale.h>

*.cpp

setlocale(LC_CTYPE,"chs");
myFile.Open(GeneralUtils::GetModuleDir()+_T(\\mx2.txt), CFile::modeWrite | CFile::modeCreate); 
myFile.WriteString(fileContent);
myFile.Close();

void ReadStringCharToUnicode(CString &str)
{
 char *szBuf = new char[str.GetLength() + 1];//注意“+1”,char字符要求结束符,而CString没有
 memset(szBuf, '\0',str.GetLength());

int i;
 for ( i = 0 ; i < str.GetLength(); i++)
 {
  szBuf[i] = (char)str.GetAt(i);
 }
 szBuf[i] = '\0';//结束符。否则会在末尾产生乱码。

int nLen;
 WCHAR *ptch;
 CString strOut;
 if(szBuf == NULL)
 {
  return ;
 }
 nLen = MultiByteToWideChar(CP_ACP, 0, szBuf, -1, NULL, 0);//获得需要的宽字符字节数
 ptch = new WCHAR[nLen];
 memset(ptch, '\0', nLen);
 MultiByteToWideChar(CP_ACP, 0, szBuf, -1, ptch, nLen);
 str.Format(_T("%s"), ptch);

if(NULL != ptch)
  delete [] ptch;
 ptch = NULL;

if(NULL != szBuf)
  delete []szBuf;
 szBuf = NULL;
 return ;
}

通过c++ 读写文本文件的中文乱码的解决方法的更多相关文章

  1. php 使用phpmailer 发送邮件(附带中文乱码的解决方法)

    下载phpmailer ,在程序里包含class.phpmailer.php 类  ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...

  2. xShell终端中文乱码完全解决方法

    xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...

  3. Mysql命令行中文乱码的解决方法

    环境:Windows 8 64位,Mysql  5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...

  4. 30. CentOS终端命令行显示中文乱码的解决方法

    安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为   代码如下: LANG="zh_CN.GB18030&qu ...

  5. windows下SVN日志反馈中文乱码的解决方法

    转自:https://shiyousan.com/post/635889908703806636 TortoiseSVN中文乱码的问题困扰了我好久,特别是每次使用“以标准差异文件显示修改”时,打开的文 ...

  6. 【IntelliJ IDEA】从资源文件读取出来就中文乱码的解决方法

    在application.properties资源文件中设置两个自定义的属性以及属性值: com.sxd.name = "德玛西亚" com.sxd.want = "王者 ...

  7. ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用

    [摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...

  8. Sublime Text 3 中文乱码的解决方法

    Sublime Text 3 中文乱码表现如下图: 解决方法很简单,三步搞定: 步骤一: 下载ConvertToUTF8,下载地址:http://pan.baidu.com/s/1gd5SWmB 步骤 ...

  9. mysql命令行以及mysql workbence查询结果中文乱码的解决方法

    最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47同时也安装了mysql命令行以及mysql workbench这里是test数据库cr ...

随机推荐

  1. Ext JS v2.3.0 Ext.grid.ColumnModel renderer Record 获取列值

    场景:设置某一列的值,但是需要获取其他列的值 {"header": '<s:property value="name" />', "wid ...

  2. 类的 where T : class 泛型类型约束

    where T : struct | T必须是一个结构类型where T : class T必须是一个类(class)类型where T : new() | T必须要有一个无参构造函数where T ...

  3. CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目

    写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...

  4. C# 向TIM或者QQ自动发送中文消息【微信也是可用的】 附测试GIF

    之前用C++简单的写了一个demo 现在用C#写了完整版 定义字符 定义发送数量 定义发送对象 注意事项 QQ必须单独一个窗体 微信对象在输入名字的时候必须写微信 源代码 using System; ...

  5. C# LINQ(2)

    前一章的代码LINQ都是以select结尾. 之前也说过可以group结尾. 那么怎么使用呢? 还是一样的条件,查询小于5大于0的元素 代码: ,,,,,,,,, }; var list = from ...

  6. Agreement has been updated--Edit Phone Number最便捷解决办法(不需要安全提示问题和双重认证)

    2018年06月04日亲测有效: CSDN博客跳转网址:

  7. ajax-2

    serialize()输出序列化表单值的结果: 如: <html> <head> <script type="text/javascript" src ...

  8. 【RMAN备份】数据库备份

    转载请注明地址. 备份片文件名通配符: %c 备份片的拷贝数 %D 位于该月中的第几天 (DD) %M 位于该年中的第几月 (MM) %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIII ...

  9. The server of Apache (四)——配置防盗链和隐藏版本信息

    一.防盗链 防盗链就是防止别人的网站代码里面盗用我们服务器的图片.文件.视频等相关资源,比如我们的网页的图片有链接,别人把链接复制粘贴到他们的服务器页面里,图片不在他们自己的网站里,每次打开他们的网站 ...

  10. 详说Flask、Django、Pyramid三大主流 Web 框架

    前言 目前随着 Python 在大数据.云计算.人工智能方面的热度,Python Web 应该也会被更多企业了解使用. Python Web 框架千万种,没必要都去了解和学习,身边总有人说高手都用 F ...