浅谈php中fopen不能创建中文文件名文件的问题
发布时间 - 2026-01-10 22:52:45 点击率:次之前网页的chartset用的是utf-8,文件也用utf-8,然后用fopen()创建一个中文文件名的文件时问题就出来了,文件名都是乱 码!

查看了很多文档试了不少方法都解决不了,本来想着用别的方法绕过这个问题,忽然脑子里闪过Windows默认的文字编码是ansi,然后再 baidu了一下,证实了这点,所以我的网页也应该是ansi编码才能使创建的文件名不会是乱码。
接着就着手验证,把网页都用ansi保存,去掉chartset语句,果然ok了,但是网页的内容就成乱码了,后来想起,这个网页还include 了别的网页,把include的网页也改成ansi保存,哈哈万事ok
编程这个工作真的很靠积累,如果我以前没看过Windows默认编码是ansi,那这个问题就不知何年何月才能解决了
ps:< meta content ="text/html; charset=utf-8" http -equiv ="Content-type" > 这个meta标记一定要放在<title></title>之前才有效的
后来又想到了一个更好的解决方法,网页还是用utf-8编码和保存,只是fopen()里的文件名参 数单独给它编下码就行,php有iconv() 这个改换编码的程序,把utf-8转成 gb2312就可以避免中文文件名为乱码了
test.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>标题:{title}</title>
</head>
<body>
<b>此新闻的内容:</b>{content}
</body>
</html>
test.php
<?php
//实际应用中很可能是查询数据库取内容。
$rows = array(array("替换标题1","替换内容1"),array("替换标题2","替换内容2"));
$filename = "tmp.htm";
foreach($rows as $id => $val){
$title = $val[0];
$content = $val[1];
$pagename = "测试".$id.".html";
//对文件名的编码,避免中文文件名乱码
$pagename = iconv("UTF-8", "GBK", $pagename);
//读取模板
$tmpfile = fopen($filename,"r");
$string = fread($tmpfile,filesize($filename));
$string = str_replace("{title}",$title,$string);
$string = str_replace("{content}",$content,$string);
fclose($tmpfile);
//写新文件
$newpage = fopen($pagename,"w");
fwrite($newpage,$string);
fclose($newpage);
}
echo "创建成功!";
?>
以上这篇浅谈php中fopen不能创建中文文件名文件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# php
# fopen
# 中文文件名
# php 使用fopen函数创建、打开文件详解及实例代码
# PHP使用fopen与file_get_contents读取文件实例分享
# PHP中通过fopen()函数访问远程文件示例
# php使用fopen创建utf8编码文件的方法
# PHP 获取远程网页内容的代码(fopen
# curl已测)
# php file_put_contents()功能函数(集成了fopen、fwrite、fclose
# PHP fopen中文文件名乱码问题解决方案
# 这个问题
# 给大家
# 的是
# 都是
# 放在
# 看了
# 真的很
# 就行
# 希望能
# 然后再
# 就可
# 这篇
# 能使
# 都用
# 浅谈
# 脑子里
# 解决方法
# 也应
# 试了
# 给它
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
利用vue写todolist单页应用
如何用wdcp快速搭建高效网站?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
JavaScript如何操作视频_媒体API怎么控制播放
如何在橙子建站中快速调整背景颜色?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
如何用PHP快速搭建高效网站?分步指南
node.js报错:Cannot find module 'ejs'的解决办法
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何用景安虚拟主机手机版绑定域名建站?
北京网站制作公司哪家好一点,北京租房网站有哪些?
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Laravel如何发送系统通知?(Notification渠道示例)
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
如何批量查询域名的建站时间记录?
Android Socket接口实现即时通讯实例代码
如何彻底卸载建站之星软件?
如何快速搭建个人网站并优化SEO?
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
如何在IIS中配置站点IP、端口及主机头?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
如何生成腾讯云建站专用兑换码?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
香港服务器部署网站为何提示未备案?
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
如何用PHP工具快速搭建高效网站?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
如何快速搭建安全的FTP站点?
Android使用GridView实现日历的简单功能
三星网站视频制作教程下载,三星w23网页如何全屏?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
简单实现Android验证码
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
JavaScript常见的五种数组去重的方式
Android实现代码画虚线边框背景效果

