通过c++ 读写文本文件的中文乱码的解决方法
前提: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++ 读写文本文件的中文乱码的解决方法的更多相关文章
- php 使用phpmailer 发送邮件(附带中文乱码的解决方法)
下载phpmailer ,在程序里包含class.phpmailer.php 类 ,这里有中文乱码的解决方法 实例代码如下 <html> <head> <title&g ...
- xShell终端中文乱码完全解决方法
xShell终端中文乱码完全解决方法 xShell(xShell5)以及其他终端中文乱码的原因无非有三种:(1)Linux系统的编码问题:(2)xShell终端的编码问题: (3)两端的语言编码不一致 ...
- Mysql命令行中文乱码的解决方法
环境:Windows 8 64位,Mysql 5.0.96 for Win64 (x86) 数据库本身安装时默认已经是使用utf8编码的了,但在命令行中执行查询时,查询到的中文依然乱码,解决方法如下 ...
- 30. CentOS终端命令行显示中文乱码的解决方法
安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为 代码如下: LANG="zh_CN.GB18030&qu ...
- windows下SVN日志反馈中文乱码的解决方法
转自:https://shiyousan.com/post/635889908703806636 TortoiseSVN中文乱码的问题困扰了我好久,特别是每次使用“以标准差异文件显示修改”时,打开的文 ...
- 【IntelliJ IDEA】从资源文件读取出来就中文乱码的解决方法
在application.properties资源文件中设置两个自定义的属性以及属性值: com.sxd.name = "德玛西亚" com.sxd.want = "王者 ...
- ueditor 1.4.3 gbk asp 上传中文乱码 终极解决方法 ie6 ie8 也适用
[摘要:百度编纂器1.43 gbk asp 题目 1.firefox3.0下 单图上传 面没有了 面多图上传 中央的蓝色按钮(即 面击挑选图片)没有表现(附件上传出那个题目) 没有晓得我的水狐吃翔了 ...
- Sublime Text 3 中文乱码的解决方法
Sublime Text 3 中文乱码表现如下图: 解决方法很简单,三步搞定: 步骤一: 下载ConvertToUTF8,下载地址:http://pan.baidu.com/s/1gd5SWmB 步骤 ...
- mysql命令行以及mysql workbence查询结果中文乱码的解决方法
最近正在学习mysql,安装环境是windows server 2003 32位操作系统+mysql 5.1.47同时也安装了mysql命令行以及mysql workbench这里是test数据库cr ...
随机推荐
- Ext JS v2.3.0 Ext.grid.ColumnModel renderer Record 获取列值
场景:设置某一列的值,但是需要获取其他列的值 {"header": '<s:property value="name" />', "wid ...
- 类的 where T : class 泛型类型约束
where T : struct | T必须是一个结构类型where T : class T必须是一个类(class)类型where T : new() | T必须要有一个无参构造函数where T ...
- CENTOS7 使用 Nginx + Uwsgi 部署 Django 项目
写在前面的话 最近总是见到有新学 Django 的朋友在部署自己的项目到 Linux 上面的时候运行不起来,所以就动手写了这篇博客. 对于不会搭建 Python 3 环境的朋友可以参考前面的博客[CE ...
- C# 向TIM或者QQ自动发送中文消息【微信也是可用的】 附测试GIF
之前用C++简单的写了一个demo 现在用C#写了完整版 定义字符 定义发送数量 定义发送对象 注意事项 QQ必须单独一个窗体 微信对象在输入名字的时候必须写微信 源代码 using System; ...
- C# LINQ(2)
前一章的代码LINQ都是以select结尾. 之前也说过可以group结尾. 那么怎么使用呢? 还是一样的条件,查询小于5大于0的元素 代码: ,,,,,,,,, }; var list = from ...
- Agreement has been updated--Edit Phone Number最便捷解决办法(不需要安全提示问题和双重认证)
2018年06月04日亲测有效: CSDN博客跳转网址:
- ajax-2
serialize()输出序列化表单值的结果: 如: <html> <head> <script type="text/javascript" src ...
- 【RMAN备份】数据库备份
转载请注明地址. 备份片文件名通配符: %c 备份片的拷贝数 %D 位于该月中的第几天 (DD) %M 位于该年中的第几月 (MM) %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIII ...
- The server of Apache (四)——配置防盗链和隐藏版本信息
一.防盗链 防盗链就是防止别人的网站代码里面盗用我们服务器的图片.文件.视频等相关资源,比如我们的网页的图片有链接,别人把链接复制粘贴到他们的服务器页面里,图片不在他们自己的网站里,每次打开他们的网站 ...
- 详说Flask、Django、Pyramid三大主流 Web 框架
前言 目前随着 Python 在大数据.云计算.人工智能方面的热度,Python Web 应该也会被更多企业了解使用. Python Web 框架千万种,没必要都去了解和学习,身边总有人说高手都用 F ...