社区
C语言
帖子详情
用fopen怎么打不开中文文件??
mousefather
2003-10-20 04:57:21
我要做一个在纯dos下运行的程序,需要对每个目录下的文件进行一些操作,但是这些文件有用中文命名的,在dos下用dir看是乱码,我用findfirst和findnext可以找到那些乱码的件名,但是我用fopen打开这些乱码文件名时就出错,不知道有没人做过这方面的研究?
...全文
701
13
打赏
收藏
用fopen怎么打不开中文文件??
我要做一个在纯dos下运行的程序,需要对每个目录下的文件进行一些操作,但是这些文件有用中文命名的,在dos下用dir看是乱码,我用findfirst和findnext可以找到那些乱码的件名,但是我用fopen打开这些乱码文件名时就出错,不知道有没人做过这方面的研究?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mousefather
2003-10-21
打赏
举报
回复
那些杀毒工具好像都可以,大家有没用过dos下的杀毒工具,如果你的文件是中文的,在它杀毒的时候显示的是一堆乱码,但是它照样能杀,不知道他是怎么实现的
mousefather
2003-10-21
打赏
举报
回复
我在windows在编辑一个文件,大概是这样的:
FILE *fp;
fp=fopen("啊.txt","rb");
printf("%p\n",fp);
再用tc打开编译生产exe文件
在windows下打的开,打印的是一个地址,而如果我把这个程序在dos在运行,打印的就是空指针,说明在dos下打不开这个文件!
请高手解释一下
kisa99
2003-10-21
打赏
举报
回复
在dos下先运行pdos95.看有用不,我也没试过。
wxw20032004
2003-10-21
打赏
举报
回复
蛮难的,我再想想....
bestfyj
2003-10-21
打赏
举报
回复
建议你不要着急,逐步跟踪,找到问题的根源
mousefather
2003-10-21
打赏
举报
回复
里面是对这个文件打开然后做一些计算,如果是英文的一点问题都没有,但是如果是中文文件在fopen的时候就出错
MDFILE这个函数非常复杂,是作一个MD5算法,但是第一步是fopen这个文件,在第一步就出错了,应该问题是出在fopen上
mfc168
2003-10-21
打赏
举报
回复
你的MDFile这个函数内容是什么?问题一定就在里面!
mousefather
2003-10-21
打赏
举报
回复
不是长度问题,我的文件名是“啊.txt",指针应该也没问题,因为如果是英文名的文件都可以打开
if(findfirst(filetype,&c_file,FA_DIREC|FA_HIDDEN|FA_RDONLY|FA_SYSTEM|FA_ARCH)== -1L )
printf( "No files this directory!\n" );
else
{
do
{
if(((c_file.ff_attrib&0x10)==0x10)&&(c_file.ff_name[0]!='.')){
//if (((c_file.ff_attrib==FA_DIREC)) &&(c_file.ff_name[0]!='.')) {
//if(c_file.ff_name[0]=='.'&&c_file.ff_name[1]=='.'){
if(chdir(c_file.ff_name)==0)
{
findfile("*.*");
chdir("..");
}
else
fprintf(probfile,"%s->%s\n", pathname,c_file.ff_name);
}
else
{
if (pathname[strlen(pathname)-1]=='\\')
sprintf(filename,"%s%s",pathname,c_file.ff_name);
else
sprintf(filename,"%s%s%s",pathname,"\\",c_file.ff_name);
if ((c_file.ff_name[0]!='.') && (!strstr(outfilename,c_file.ff_name))) {
md5digest=MDFile(c_file.ff_name);//这里对文件进行打开等一些操作,如果是英文文件没有问题,如果是中文就答不开了
fprintf(outfile,"\"%s\", %s\n",filename,md5digest);
printf("Examining: %s, %s\n",filename,md5digest);
}
}
} while(findnext(&c_file ) == 0 );
}
Caoyu015
2003-10-20
打赏
举报
回复
可能是文件名称长度有问题.
lpclpc
2003-10-20
打赏
举报
回复
乱码的文件名??
能否贴个代码?
allen1981813
2003-10-20
打赏
举报
回复
指针用的对吗?
mousefather
2003-10-20
打赏
举报
回复
是啊,我都可以把它打印出来,但是用fopen就是打不开
sandra423
2003-10-20
打赏
举报
回复
你得到的文件名是乱码吗?
PHP
fopen
中文
文件
名乱码问题解决方案
一般在php中会使用
fopen
进行生成
文件
,但是当
文件
名存在
中文
时保存
文件
会出现
中文
乱码。 源代码: <?php $fileName = __DIR__ . '\测试.txt'; $fp =
fopen
($fileName, 'w'); fwrite($fp, '这是
中文
内容'); fclose($fp); echo $fileName.'
'; if(file_exists($fileName)){ echo 'hhhhh'; } ?> 结果:
文件
名是乱码 解决: 对
文件
名进行编码。 <?php $fileName = __DIR__ . '\测试.txt'; $fil
浅谈php中
fopen
不能创建
中文
文件
名
文件
的问题
之前网页的chartset用的是utf-8,
文件
也用utf-8,然后用
fopen
()创建一个
中文
文件
名的
文件
时问题就出来了,
文件
名都是乱 码! 查看了很多文档试了不少方法都解决不了,本来想着用别的方法绕过这个问题,忽然脑子里闪过Windows默认的文字编码是ansi,然后再 baidu了一下,证实了这点,所以我的网页也应该是ansi编码才能使创建的
文件
名不会是乱码。 接着就着手验证,把网页都用ansi保存,去掉chartset语句,果然ok了,但是网页的内容就成乱码了,后来想起,这个网页还include 了别的网页,把include的网页也改成ansi保存,哈哈万事ok 编程这个工作真的很靠积
《C语言深度解析》第9、10章——位操作 /c标准IO、网络编程/线程/链表
本课程主要讲解以下内容...标准IO与
文件
IO、常见标准IO函数有哪些、
fopen
/fclose)、标准io输出函数、标准io输入函数等 4.多线程、网络编程、数据库、数据结构、顺序表、链表、单链表、双链表、队列/栈、Linux内核链表
原创matlab读取txt
中文
文本的解决方案-程序.rar
原创matlab读取txt
中文
文本的解决方案-程序.rar matlab对
中文
的支持一直以来都是个不小的问题,尤其在读取文本方面。一般读出的
中文
文本都是乱码,网上找了半天没找到答案,自己研究了一下,在快要绝望的时候终于有了结果~ 呵呵 这个问题是在本论坛中的GUI教学视频第5课中提到的,学生的成绩单必须要转换成英文 数字才能正常读入,我用的是
中文
系统,用
fopen
试了一下,结果读出的
中文
是'???'样的乱码。不多废话,还是用本课视频的例子,为了证明读取
中文
的有效性,我把源程序的思路做了一下改动,界面中不做
中文
string的设置,全部由程序给出,解决方案如下 编程环境:matlab7.1;Windows XP professional SP2 更改后的代码 function matlab_GUI_4_OpeningFcn fdata = importdata % 导入文本数据 ftextdatasize = size; % 求文本类数据长度 fdatasize = size % 求数据长度 counter = 1; while counter
PHP
fopen
读取带
中文
URL地址的一点见解
之前喜欢用
fopen
()函数跨域读取图片或其它
文件
,一直都没发现什么问题。我所用的PHP版本都是5的了,应该不会有CRLF Injection攻击危险吧
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章