实现fopen支持中文的方法

VC下实现fopen支持中文的方法 主要介绍了VC下实现fopen支持中文的方法,需要的朋友可以参考下 立即下载

投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-07-07 我要评论

这篇文章主要介绍了VC下实现fopen支持中文的方法,需要的朋友可以参考下

VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。

代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool UTF8ToUnicode( const char * UTF8, wchar_t * strUnicode)
{
  DWORD dwUnicodeLen;    //转换后Unicode的长度
  TCHAR *pwText;      //保存Unicode的指针
// wchar_t* strUnicode;    //返回值
  //获得转换后的长度,并分配内存
  dwUnicodeLen = MultiByteToWideChar(CP_UTF8,0,UTF8,-1,NULL,0);
  pwText = new TCHAR [dwUnicodeLen];
  if (!pwText)
  {
  return false ;
  }
  //转为Unicode
  MultiByteToWideChar(CP_UTF8,0,UTF8,-1,pwText,dwUnicodeLen);
  //转为CString
  wcscpy(strUnicode, pwText);
  //清除内存
  delete []pwText;
  return true ;
}

这个函数的用法如下:

?
1
2
3
4
wchar_t strUnicode[260];
UTF8ToUnicode(streamName, strUnicode);
FILE * fid = _wfopen(strUnicode, L "rb" );
// FILE* fid = fopen(streamName, "rb");//此为原来的方法,遇到中文不能正确打开

上述函数仍有不够完善之处,如参数strUnicode的长度不能灵活设置,读者可根据自身需求进一步加以完善!

从string一词感受从字母象形到语义生成的底层逻辑 从词源上看,个人认为,soft一词的含义主要来自于“柔软水滑或柔软光滑”这样的含义,是从这样的含义中逐渐窄化,最终主要用来指“柔软”之意,而光滑、水滑这样的含义或语义形象最终被淡化,所以,soft如果符合首字母象形原则,那么它主要的来源形象,应当是【水】,也就是说,soft一词和smooth(a.光滑的)、ski(滑雪)/skate(滑冰)、slip(滑倒)/slippers(拖鞋)、slide(滑动)是相通的,并最终和sea(海)、sweat(汗/汗水)这一类和水一直相关的单词也相通。 阅读详情

相关推荐

搞定安卓11+抓包难题:用Kitsune Mask、magic_overlayfs和LSPosed三件套绕过SSL Pinning(保姆级教程)

本文详细解析了安卓11+系统中抓包面临的核心挑战,包括SSL Pinning和Root检测机制,并提供了使用Kitsune Mask、magic_overlayfs和LSPosed三件套的完整解决方案。通过动态分区技术解析和工具链配置,帮助开发者绕过安全限制,实现高效抓包分析。

weixin_42665255的博客 442

C++ fopen打开文件时,路径中包含中文 wfopen

C++ fopen打开文件时,路径中包含中文 wfopen

ken2232的博客 493

STM32串口DMA双缓冲机制实战:提升数据传输效率的终极方案

本文深入解析了STM32串口DMA双缓冲机制的核心原理与实战配置。通过对比传统中断方式,阐述了双缓冲如何实现数据接收与处理的“无缝接力”,从而在工业传感器数据采集等高负载场景下,将CPU占用率降至极低水平并彻底避免数据丢失。文章提供了基于标准外设库的详细配置步骤、中断处理逻辑及性能实测数据,是提升嵌入式系统串口通信效率和可靠性的终极方案。

weixin_29192365的博客 79

C和C++读写txt操作方法,以及中文乱码问题的解决

C和C++读写txt操作方法,以及中文乱码问题的解决

小花的博客 1万+

【ADCU详解】PMIC电源管理集成电路详解

自动驾驶域控制器(ADCU)中的电源管理集成电路(PMIC)是高度集成的关键部件,负责为计算核心、传感器等提供高效稳定的多路电源。其核心特点包括:符合车规AEC-Q100标准、支持功能安全ASIL等级、精确的时序控制及强抗干扰能力。PMIC由开关稳压器、LDO、时序控制器、监控保护电路等模块组成,通过分层电源树框架实现电能分配。设计需考虑效率、功率密度、噪声性能等关键维度,底层基于Buck转换器和LDO原理工作。使用中需满足严苛的车规环境要求,并通过静态/动态测试及故障注入测试进行验证,确保系统可靠性和安全

qq_40844444的博客 841

从零到一:RK3588平台上的星闪模块驱动移植全解析

本文详细解析了在RK3588平台上移植UB37星闪模块驱动的完整流程,涵盖内核配置、设备树适配、驱动编译、功能测试等关键步骤。通过实践指导,帮助开发者掌握星闪技术在嵌入式系统中的集成与应用,提升无线通信模块的开发效率。

qsc90123456的博客 337

Windows下C语言中用fopen函数打开带有中文的路径的文件

Windows下C语言中用fopen函数打开带有中文的路径的文件

m0_60793758的博客 4879

TMS320F280049C 学习笔记4 Led_ex1_blinky 初始化函数及系统时钟

承接上一篇学习笔记,这次开始实际运行例程。本文概述了280049C的第一个实验 Led灯闪烁。同时也总结了系统的初始化函数和时钟配置。

whyorwhnt的专栏 7029

linux下的标准I/O的fopen()与fclose()函数详细介绍及代码演示

linux下的标准I/O的fopen()与fclose()函数详细介绍及代码演示

qwerwqwe的博客 1358

PyMySQLSaver实战:构建高可靠性的LangGraph状态管理

本文详细介绍了如何使用PyMySQLSaver构建高可靠性的LangGraph状态管理系统。通过检查点机制和MySQL持久化技术,开发者可以确保AI应用在崩溃后从最近状态恢复,支持长时间运行任务和多轮交互。文章包含核心架构解析、生产环境部署指南及实战案例,帮助开发者掌握状态管理的核心技术。

weixin_29310605的博客 494

vue3 - 超详细 cropper.js 实现图片(头像)裁剪效果功能,在vue3中上传图像后按比例进行图片的裁剪及实时预览,Element / Ant Desi(详细示例源码,一键复制开箱即用!)

vue3图片裁剪及实时预览,vue3 vue-cropper,vue3头像裁剪,vue3 el-upload+vue-cropper 图像图片头像裁剪上传,vue3怎么进行图片的裁剪,vue3使用vue-cropper图片裁剪,vue3项目如何实现头像图片裁剪上传功能,vue3网站pc怎么将上传的图片按比例进行裁剪,vue3+element plus实现图片上传按尺寸大小裁剪,vue3中图片上传使用cropperjs 头像裁剪,vue3中图片上传使用cropperjs 头像裁剪,vue3好用的图片裁剪插件组

✅ 精选推荐文章 4506

中文文件的读取

用fopen_s()函数读取中文文件时会出现乱码。1.在C++中可以使用:_wfopen_s()函数去打开中文文件。函数: _wfopen_s(FILE**fp,L"文件路径",L"文件的使用方式")2.使用:fgetws()函数去读取中文文件。函数:fgetws(wchar_t*wstr,int len,FILE*fp);参数:wchar_t*wstr   // 是自己定义的一块数组      ...

Clever_Pig的博客 2450

57. SAP UI5 应用基于 OData 注解的 Smart Field 使用方法学习

所谓 SAP UI5 Smart Field,顾名思义,是一类比较`智能`的控件,这类控件同 SAP UI5 传统的控件不同,会根据 SAP UI5 应用程序连接的 OData 服务中元数据里提供的注解(`annotations`),在运行时动态生成底层的 SAP UI5 控件。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2769

vc里的c语言怎么fopen,VC下实现fopen支持中文的方法

VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。代码如下:bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode){DWORD dwUnicodeLen; //转换后Unicode的长度T...

weixin_32237603的博客 573

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

逆序存储文件(二)——使用c标准库函数fopen,fseek,fread,fwrite

使用c标准库函数实现小文件逆序存储逻辑是: 1.用fopen函数成功打开源文件和目标文件,源文件用只读方式(r)打开,目标文件用追加写入(a)的方式打开; 2.循环使用fseek定位文件指针(fopen的返回值),从SEEK_END(文件末尾)位置开始,每次多向前偏移一个字节,知道fseek返回一个非0值结束;(fseek能改变文件指针) 3.每次定位成功后,读取一个字符(fread)到缓冲

sunchenx的专栏 1846

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文件操作:新手初试遇到的小问题,及其解决

但是vs2026下面提示信息告诉我fopen可能不安全,得加上_CRT_SECURE_NO_WARNINGS,于是我加上。咨询了deepseek之后,它说可能是中文编码不匹配,让我试下英文success来进行验证。deepseek告诉我这个原因是:{vs自作聪明把简体中文那个编码改了,于是出现乱码。这次没有输出错误,但是程序并没有像我所想输出"打开文件成功",它输出了一堆乱码。刚开始是也有这种问题,但是我把源文件删了之后再新建一个就没有问题了。验证成功,文件打开与写入就是可以的,是中文汉字的原因。

2602_95499777的博客 615

VC下fopen如何支持中文

fopen的第一个参数是const char*,如何遇到中文文件名就麻烦了,如果中文是UTF8,我们可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。 上代码: bool UTF8ToUnicode(const char* UTF8, wchar_t* strUnicode) { DWORD dwUnicodeLen; //转换后Unicode的长度

张天师的专栏 3335

C++ 11 fopen 支持打开带中文的路径

【代码】C++ 11 fopen 支持打开带中文的路径。

zhexiao 2487

Qt 通过fopen打开中文的文件名

版权声明:本文为优快云博主「guoqianqian5812」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。在做一个Qt项目的时候,完成上传文件时,通过fopen打开文件用来读时发现fopen不能打开中文的文件名,自己在网查找一下,解决方法如下。原文链接:https://blog.youkuaiyun.com/guoqianqian5812/article/details/45226695。

ken2232的博客 819

fopen打开文件名(文件路径含中文或韩语)方法测试

fopen打开文件失败问题分析和处理

unify6的专栏 1105

fopen函数打开中文路径(utf-8)失败分析

那么qt在windows下运行底层会调用Windows的API CreateFile,而windows用的编码是GBK,所以即使qt设置了使用utf-8编码那么到底层执行windows的API仍然会使用GBK编码,故需要转换路径字符串为GBK编码后放能被fopen识别。先将源编码转换为 Unicode(中间格式),再从 Unicode 转换为目标编码。gb2312转换utf-8。utf-8转换gb2312。

weixin_43754520的博客 317

php fopen 中文,php fopen用法是什么

php fopen用于打开一个文件或URL,其语法是“fopen(filename,mode,include_path,context)”,参数filename表示要打开的文件或URL,参数mode表示访问类型。PHP fopen() 函数定义和用法fopen() 函数打开一个文件或 URL。如果 fopen() 失败,它将返回 FALSE 并附带错误信息。您可以通过在函数名前面添加一个 '@' ...

weixin_36004880的博客 311

php fopen 汉字,PHP fopen 读取带中文URL地址的一点见解

之前喜欢用fopen()函数跨域读取图片或其它文件,一直都没发现什么问题。我所用的PHP版本都是5的了,应该不会有CRLF Injection攻击危险吧但昨天在读取一张图片的时候出问题了,后来发现是URL里带中文字符。例如下面这种情况:复制代码 代码如下:$files = fopen('http://www.website.com/我的PP.jpg', 'rb');那“$files”的返回值将会是...

weixin_31313071的博客 342

C++ 创建用管理员方式运行的快捷方式 附:fopen()打开包含中文的路径

说创建不太准确,比较我写这个的目的是为了做个炉石传说拔线工具,实际实现的内容是将现有的快捷方式用程序勾上用管理员方式运行。 后面我会把工具源码、已经编译好的文件发出来。 想要学会一种fopen()打开包含中文的路径的方法的话可以仔细看看源码,这里我就不分离成案例了。 #include <iostream> #include <stringapiset.h> using namespace std; typedef unsigned char byte; bool hashSuff

NOW I GOT ONE WAY 752
上一篇: C语言中auto,register,static,const,volatile的区别详细解析
下一篇: C++操作MySQL大量数据插入效率低下的解决方法
流左沙
博客等级 码龄11年 46粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值