VC读写TXT文件和CStdioFile读写乱码

MFC用CStdioFile类读取中文文本时乱码问题的一种解决方法 在文章开始之前,先声明一下,本人的编程环境为vs2010,MFC工程使用unicode字符集。         在MFC中,用CStdioFile类可以很方便地一行一行读取文件。 可是最近我在编写MFC程序时,用CStdioFile读取中文文本时,发现读入的是乱码。在网上查了很多方法都得不到很好的解决。后来本人冷静下来仔细分析了一下,找到了一种可行的方法。下面这个框图是我的这种方法的基本思路: 阅读详情

        最近突然想用用TXT文件存储数据,网上找了段源码,采用CStdioFile类简单方便,但出现一个很奇怪的问题,从TXT读取的文件一旦遇到中文就变成乱码,可重新写进TXT文档却又全部正常,后来发现是ANSI格式UNICODE格式兼容问题,貌似VC2005以上版本都有这毛病,网上找了很多解决方法,不过某位大神设置语言区域的方法最简单实用,源码贴出来供大家参考

 
 
 
 

 

 

VC逐行读写日志文件(TXT) <br />最近写一个日志读写控件的类,发现VC的CSdioFile的WriteString不能处理中文,虽然把字符集改 成多字符形式可以解决这个问题,但这就破坏了程序的兼容性。所以我写了以下的方法,另外还可以用一咱本地化的方法解决WriteString不能输入中文 方法,附最后(这个也可以使用UNICODE字符集)。<br />用流在写日志时,发现如果把"/r/n"直接写在字符串的尾部,则会造成乱码,其中的原因网上有很多说明,主要是标准库与WINDOWS的回车换行的机制略有差别。但只要写到另一行重起就 阅读详情

相关推荐

VC++6.0项目精讲:从Win32到MFC,掌握Windows桌面开发核心

Windows桌面应用程序开发的核心在于理解其底层运行机制,这通常涉及对Windows API的调用、消息循环的处理以及运行时库的依赖。消息循环是Windows程序的心脏,它负责从系统队列中获取并分发用户输入和系统事件,驱动程序运行。动态链接库(DLL)和运行时库(如MSVCRT)的管理则是确保程序可移植性和部署成功的关键技术,它们解决了代码复用和依赖问题,这也是现代应用(如Flutter桌面端)打包时仍需处理VC++库依赖的根本原因。掌握这些原理,对于维护遗留系统或理解现代框架的底层封装都极具价值。本文将

weixin_34416754的博客 511

CStdioFile实现完美支持UNICODE方案

飞鸽传书软件在读写文件时,会遇到UNICODE的文件,怎么办呢?这个给大家一个CStdioFile实现完美支持UNICODE方案,先放着以后可能会用到。 // 目标文件路径名称的宏定义    #define FileURL _T("C://coderui.txt")    //    // 将“单字节的字串符类型(_MSBC环境)”转换为“宽字节的字符串类型(Unicode环

神经网络爱好者 2132

VC6 MFC对话框程序:带界面操作的TXT文件读写完整工程包

直接用Visual C++ 6.0打开就能编译运行的MFC对话框项目,实现用户在界面上输入文字后一键保存为a.txt,也能点击按钮从a.txt读取内容并显示在编辑框中。工程包含全部源码(red.cpp、redDlg.cpp等)、资源文件(图标、RC脚本、对话框模板)、可执行文件red.exe,以及VC6专属工程文件(.dsw、.dsp)。所有代码基于标准MFC框架编写,使用CStdioFile完成文本读写,逻辑清晰,无额外依赖。配套ReadMe.txt说明操作步骤,a.txt作为默认测试文件预置在包内。调试

t4y5u6i7o的博客 177

使用CStdioFile 读写UNICODE文档

 一:写文档   1  创建文档并写入内容 CString filePath=L"C:\\unicode.txt"; CStdioFile wfile; if (!wfile.Open(filePath,CFile::modeCreate|CFile::modeWrite|CFile::typeBinary)) { AfxMessageBox(L"文件无法修改");

[Starain工作室] Love Life、Love Code、Love you 776

从Multibit到Debanking:芯片设计中的时序优化完整流程解析(含真实案例)

本文深入解析芯片设计中Multibit技术与Debanking的时序优化完整流程,结合7nm移动SoC真实案例,详细探讨Multibit的核心优势、实施条件及潜在风险,并提供Debanking的触发时机与操作策略。通过平衡Multibit与Debanking,工程师可有效优化PPA(Power-Performance-Area),提升芯片设计效率。

weixin_30316097的博客 460

IKM 测试题 - Java SE 8 评估测试题目

IKM 测试题 - Java SE 8 评估测试题目

licheng11y的博客 1315

CStdioFile::ReadString(CString str)读ANSI文件的乱码问题

今天在实现提取某ANSI文件内字符信息时发现中文都是乱码,折腾好久,试了数种方法,就以下两种比较简单有效些:(vs2019解决方案属性设置的是Unicode而非多字节) CStdioFile FileRead(LPCTSTR(_T("***")),CFile::modeRead); CString strRead=_T(""); while(FileRead.ReadString(strRead)) { vecFileLines.push_back(strRead); } 1. 用一个csdn

HVACoder 1505

逆向分析PerimeterX px3:从混淆JS到生成有效令牌的完整实战

在Web安全与数据采集领域,反自动化防护是保障服务稳定和数据安全的关键技术。其核心原理是通过收集浏览器环境指纹和用户行为特征,动态生成加密令牌来区分真人用户与自动化脚本。这项技术的工程价值在于平衡安全性与用户体验,广泛应用于电商、金融、社交等需要防止恶意爬虫和自动化攻击的场景。本文聚焦于业界广泛部署的PerimeterX px3防护方案,通过JavaScript逆向工程,深入剖析其令牌生成机制。我们将探讨如何运用动态调试、反混淆工具和算法还原等关键技术,突破px3的防护壁垒,为自动化测试和数据采集提供稳定可

diankui6178的博客 528

【CStdioFile扩展(支持Ansi、Unicode、Utf-8等文本格式)】

例如:以下是官方博客例子浅析先加入相关的头文件和库文件。提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了的函数和方法。

我的博客 1018

实战Nocobase插件开发:如何用yarn pm命令快速创建和测试API接口插件

本文详细介绍了如何使用Nocobase插件开发工具快速创建和测试API接口插件,涵盖从环境配置、插件骨架生成到数据模型定义和接口实现的完整流程。通过yarn pm命令简化开发步骤,帮助开发者高效构建支持CRUD的API插件,适用于低代码平台开发场景。

weixin_29313239的博客 457

VL53L1X移植到STM32实战记录,使用软件IIC(附源代码)

序言 VL53L1X是一个很小又很优秀的测距传感器,它相比于上一代VL53L0X有着不小的提升,这次毕业设计打算将这个传感器用起来,就来移植了一下,遇到的坑怎么说还是有一些,故在此分享给大家。 开发环境 IDE:Keil V5 STM32CubeMX ,使用HAL库 具体操作 获取官方库并进行移植 这一步是移植的基础,首先从官方把API库下下来,并添加到IDE中: 适配硬件 这里由于不同的硬件平...

wmdscjhdpy的博客 1万+

VC读写TXT文件和CStdioFile读写乱码----本人亲自测试可行

原文地址::http://blog.youkuaiyun.com/callmezane/article/details/7172920 相关文章 1、[C++] cout、wcout无法正常输出中文字符问题的深入调查(1):各种编译器测试----http://www.cnblogs.com/zyl910/archive/2013/01/20/wchar_crtbug_01.html

xqhrs232的专栏 3980

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

共8页 目录 1 创建一个Record IDT 2 创建一个Array IDT 3 创建一个S/R Port Interface 4 创建一个Constant 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer .

「汽车电子助手」的博客 1669

VC 逐行读写TXT文件

用流在写日志时,发现如果把"\r\n"直接写在字符串的尾部,则会造成乱码,其中的原因网上有很多说明,主要是标准库与WINDOWS的回车换行的机制略有差别。但只要写到另一行重起就没有 用流在写日志时,发现如果把"\r\n"直接写在字符串的尾部,则会造成乱码,其中的原因网上有很多说明,主要是标准库与WINDOWS的回车换行的机制略有差别。但只要写到另一行重起就没有问题了。

yueyaquanBoy的专栏 5611

6、Cocos2D游戏开发:精灵添加与角色实现

本文详细介绍了在Cocos2D游戏开发中如何添加背景精灵和玩家角色精灵。通过创建GameScene场景、组织项目资源、使用多分辨率图像适配不同设备,并深入讲解了将角色拆分为上下半身以实现更真实瞄准效果的原理。文章还解析了Cocos2D的图像搜索机制、锚点概念及其应用,以及如何通过父子节点关系管理复合角色。最终实现了猎人角色在场景中的正确显示与定位,为后续动画和交互功能打下基础。

e3f4g5的博客 90

LPDDR5 学习笔记01:功能概述

LPDDR5/LPDDR5X SDRAM设备采用8/16DQ通道架构,支持2Gb-32Gb容量。通过CK命令时钟和更快的WCK数据时钟协同工作,7个CA引脚传输控制信息,支持2:1或4:1的WCK:CK比例。设备提供BG/8B/16B三种存储模式选择,分别支持不同数据速率(最高8.533Gbps)和突发长度。采用0.5V VDDQ电源电压,实现高速双倍数据速率传输,并通过差分WCK时钟完成数据采样。读写采用突发访问机制,需先激活命令再执行读写操作。新型LPDDR5X仅支持BG和16B模式,优化了高速性能。

一只豌豆象的博客 2203

MFC基础入门:从核心原理到实战开发,掌握Windows桌面编程精髓

Windows桌面开发的核心在于理解其事件驱动架构与图形用户界面(GUI)编程模型。MFC(Microsoft Foundation Classes)作为对Windows API的经典封装,通过消息映射机制、文档/视图架构和对话框数据交换(DDX)等设计,清晰地揭示了这一原理。掌握MFC不仅能帮助开发者维护海量存量系统,更能深刻理解GUI框架的底层运作逻辑,为学习Qt等现代框架打下坚实基础。在工程实践中,MFC凭借其与Visual Studio的深度集成,可快速构建无外部依赖、体积小巧的桌面工具,尤其适合金

weixin_30512043的博客 299

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

CStdioFile的Writestring写入中文的总结(unicode-ucs2/utf8-无Bom/ansi-gb2312)

(参考:http://blog.youkuaiyun.com/sun20082567/article/details/8316625 http://blog.youkuaiyun.com/gillerr/article/details/8518495 等)  (注:下面部分内容未验证,为推测的行为) (注:前提-使用VS,工程文字模式为unicode模式--对代码中的文字有影响) (注:字节序为little-end

春夜喜雨的专栏 8369

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

将CStdioFile类扩展,读取UNICODE文本文件

 最近因为要读取SQL脚本文件,用CStdioFile来读取脚本文件,却在程序调试时读取不了文件。后来看了一下文本文件格式,竟然是UNICODE格式的,原来在导出SQL脚本的时候,选项默认的是UNICODE格式。为了同时支持ANSI和UNICODE两种格式,在Codeproject站点上找到了CStdioFileEx类的代码,但在调试运行过程中发现,在生成UNICODE版本的执行文件时,运行没

benny5609的专栏 1252

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CStdioFile读写中文乱码

第一种:基于多字节的 char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) ); setlocale( LC_CTYPE, "chs" ); //文件读写操作 setlocale( LC_CTYPE, old_locale ); free( old_locale ); 第二种:基于Uncode的 wchar_t* pOldLocale = ...

youyicc 2109

CStdioFile ReadString 在unicode环境下汉字显示的乱码的问题。

txt文本是unicode编码格式,但ReadString后,显示汉字是乱码的。以下是解决办法。  CString CSetupForm::GetTxtfile(CString txtdir)  //参数为文件路径 {   CStdioFile file; if(file.Open(txtdir,CFile::modeNoTruncate | CFile::modeRead |

4992

解决CStdioFile.ReadString读取中文产生乱码问题

mmm1024的专栏 2521

VC++保存和读取文件中的汉字出现乱码

2.如果要将ASCII码字符串转换为宽字符(Unicode),

m0_60352504的博客 1879

VC中怎么读取.txt文件

VC中怎么读取.txt文件 一、   CStdioFile 二、   FILE* f = fopen("file name", "mode");   char buff[size];   fread(buff, size, 1, f);   fclose(f); 三、   //用MFC读文件   CFile file("yourfile.txt",CFile::modeRead

分享的滋味 3873

CStdioFile的ReadString读入中英文的总结(unicode-ucs2/utf8-无bom/ansi) .

文章讨论的前提:使用ReadString来读取字符串 utfi/ansi情况下,不能使用binary来打开,因为这种模式下,一次按照TCHAR的大小,读取两个字符,结束符号0d的话,需要读取到0x 0d 00才会认为是读取一行结束。而我们知道untf8/ansi情况存储的话,里面是没有0x00存在的。 utf8/ansi情况下,使用typetext打开,可以把字符读入到CString里面,但存

春夜喜雨的专栏 5980
上一篇: VC程序最小化到托盘
下一篇: VC单文档视图刷新抖动
CallMeZane
博客等级 码龄15年 4粉丝 12原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值