PHP fopen中文文件名乱码问题解决方案

Adelle ·
更新时间:2024-11-13
· 988 次阅读

一般在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中fopen不能创建中文文件名文件的问题php 使用fopen函数创建、打开文件详解及实例代码PHP使用fopen与file_get_contents读取文件实例分享PHP中通过fopen()函数访问远程文件示例php使用fopen创建utf8编码文件的方法PHP 获取远程网页内容的代码(fopen,curl已测)php file_put_contents()功能函数(集成了fopen、fwrite、fclose)



乱码 fopen 解决方案 PHP

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章
Vesta 2020-06-09
702
Tricia 2020-10-13
661
Vevina 2020-05-22
844