博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fopen打开文件失败的问题
阅读量:5737 次
发布时间:2019-06-18

本文共 479 字,大约阅读时间需要 1 分钟。

fopen打开带中文路径或含中文名称的文件失败。

解决这个问题有两个方法:一是改用_wfopen,这个函数接受两个宽字符类型,函数原型如下:

FILE* _wfopen(const wchar_t* filename, const wchar_t* mode);

参数一表示文件名,参数二表示打开模式,返回文件描述符

 

第二种方法还是用fopen,这种方式文件名称编码需要与系统保持一致。

fopen是C标准库的一个函数,函数内部是系统调用。Windows中调用CreateFile;Linux中调用open。

Linux的系统编码为UTF-8,程序中统一UTF-8编码就可以正常打开文件,中文乱码问题也能解决。

Windows的系统编码为GBK,如果文件名称是Unicode编码,那你在调用fopen前就必须要先把文件名称编码转为GBK,否则就打开失败。

 

另外在调用fwrite写入文件的时候,也要确保写入的字符编码和系统编码一致,否则也会出现乱码。

转载于:https://www.cnblogs.com/zhugaopeng/p/9090980.html

你可能感兴趣的文章
Style Intelligence应用之电商存货周转率分析
查看>>
Xen Desktop计算机目录添加计算机计数重置
查看>>
玩转CocoaPods
查看>>
linux安装方式
查看>>
ipsec在企业网中的应用
查看>>
多平台消息推送是安卓耗电原因之一?
查看>>
Linux下安装awstats日志统计分析
查看>>
安装BURG美化
查看>>
rhel6 yum源配置文件
查看>>
我的友情链接
查看>>
使用dockerfile构建镜像
查看>>
创建Android虚拟机AVD时ok按钮无法点亮
查看>>
Subversion 和 GIT 开发者演进
查看>>
About LoadRunner
查看>>
PostgreSQL使用with一例
查看>>
System Center 2012 R2实例2—构建Azure Pack云12—NAT网关
查看>>
mysql备份
查看>>
今天总结一下自己的职场经历
查看>>
linux面试题
查看>>
我的友情链接
查看>>