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

吾爱主题 阅读:180 2021-10-28 15:00:00 评论:0

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

?
1 2 3 4 5 6 7 8 9 10 <?php $filename = __dir__ . '\测试.txt' ; $fp = fopen ( $filename , 'w' ); fwrite( $fp , '这是中文内容' ); fclose( $fp ); echo $filename . '<br>' ; if ( file_exists ( $filename )){    echo 'hhhhh' ; } ?>

结果:

文件名是乱码

解决:

对文件名进行编码。

?
1 2 3 4 5 6 7 8 9 10 11 <?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' ; } ?>

结果:

文件名非乱码

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

输出的文件名为乱码

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.jianshu.com/p/cd63f314be59

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容