【问题标题】:PHP file-handling; Special characters in folder namesPHP 文件处理;文件夹名称中的特殊字符
【发布时间】:2010-02-07 13:16:58
【问题描述】:

我正在使用 rename() 通过 php 将文件从一个文件夹移动到另一个文件夹。

它适用于不包含瑞典语 å ä ö 字符的文件夹。

有没有办法解决这个问题? (除了将文件夹名称更改为没有特殊字符的名称)

网站完全是utf-8格式...

【问题讨论】:

    标签: php file


    【解决方案1】:

    查看rename() 的手册章节和用户贡献的说明,这似乎有点灰色地带。没有关于应该使用什么编码的消息。无论如何,如果文件系统支持它,应该可以在文件名中使用 UTF-8。

    This SO question 有一个非常聪明的答案来解决这个问题。它不是 100% 纯种的,但在大多数情况下可能是可行的。

    如果您使用的字符在iso-8859-1 中也可用,您也可以尝试一个简单的utf8_decode()。但这个解决方案并不完整,也不完美,因为它会在地图外的角色上失败。

    【讨论】:

    • (+1) 很棒的评论。没有意识到还有其他解决方法:)
    【解决方案2】:

    使用the unicode normalize functions 规范化文件路径?

    filePath = unicodedata.normalize('NFD', filePath);
    

    【讨论】:

    • 他不想更改文件夹名称。不过,很高兴了解规范化器,感谢您的链接!
    【解决方案3】:

    这似乎是一个 bug,我不确定它是否已经解决。不过,您可以使用正则表达式来 clean file/folder names。或者正如 TheGrandWazoo 所指出的,您可以使用 normalizer 类。

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      相关资源
      最近更新 更多