[php]fopen中文文件名乱码问题

一般在php中会使用fopen进行生成文件,但是当文件名存在中文时保存文件会出现中文乱码。
源代码:

<?php
$fileName = __DIR__ . '\测试.txt';
$fp = fopen($fileName, 'w');
fwrite($fp, '这是中文内容');
fclose($fp);
echo $fileName.'<br>';
if(file_exists($fileName)){
    echo 'hhhhh';
}
?>

结果:


文件名是乱码

解决:
对文件名进行编码。

<?php
$fileName = __DIR__ . '\测试.txt';
$fileName = iconv('UTF-8', 'GBK', $fileName);
$fp = fopen($fileName, 'w');
fwrite($fp, '这是中文内容');
fclose($fp);
echo $fileName.'<br>';
if(file_exists($fileName)){
    echo 'hhhhh';
}
?>

结果:


文件名非乱码

但是看页面输出的文件名:


输出的文件名为乱码

所以当要在页面上输出文件名又需要保存文件时,可以先保存原先的中文文件名,再通过文件名编码进行创建文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,904评论 3 64
  • 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办...
    七寸知架构阅读 4,495评论 0 52
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,172评论 4 97
  • 又是国庆,好像对于现在的年轻人来说,国庆的意义就是一个长假,对于爱旅游的人来说,就是黄金周,对于要开车出行...
    陈建龙阅读 855评论 2 2
  • 现代医学认为肝脏是人体中最大的消化腺,也是人体新陈代谢最旺盛的器官,还具有解毒、免疫、造血的功能,就像是个巨大的“...
    拥抱幸福a阅读 477评论 0 0