开发者社区> 问答> 正文

PHP中无法读取有特殊字符的文件名,请问怎么办?比如™®©:报错

Windows XP + 简体中文环境

文件名包含特殊字符™、®、©

比如这个文件:Level™_1.2_-494634405.txt

通过dir/scandir/opendir遍历的名称为Level?_1.2_-494634405.txt,那个特殊符号™被处理成了问号(?)

如果以Level?_1.2_-494634405.txt去读取文件,压根读取不到

glob压根遍历不出这个文件

 

请问此问题该如何处理?

这个特殊字符在windows上面应该是属于unicode文件名,可惜php在简体中文windows xp上一律使用gbk来处理目录路径和文件名。

注:谢绝回答--修改文件名称。

展开
收起
kun坤 2020-06-07 22:24:54 957 0
1 条回答
写回答
取消 提交回答
  • 试试编码转换.######我的感觉是你完全是挖坑把自己埋了,干嘛非要在路径中使用特殊字符.
    ######有道理,支持哈哈######

    你先用php打钱印你的目录,看输出是什么形式,

    不要指定文件名,而是通过读取目录,循环输出文件名。

    还有,看通过通配符,看能不能读取。

    ###### 还真没试过######urlencode或者md5
    2020-06-07 22:24:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载