PHP文件处理;文件夹名称中的特殊字符

时间:2010-02-07 13:16:59

标签: php file

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

对于没有涉及瑞典语字符的文件夹,它可以正常工作。

这有什么办法吗? (除了将文件夹名称更改为没有特殊字符的内容)

该网站完全采用utf-8格式......

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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