我不能使用mkdirUTF-8字符创建文件夹:
mkdir
<?php $dir_name = "Depósito"; mkdir($dir_name); ?>
当我在Windows资源管理器中浏览此文件夹时,文件夹名称如下所示:
Depósito
我该怎么办?
我正在使用php5
只是urlencode所需的字符串作为文件名。 从中返回的 所有 字符urlencode在文件名(NTFS / HFS / UNIX)中均有效,然后您可以urldecode将文件名改回UTF-8(或它们使用的任何编码)。
urlencode
urldecode
注意事项(同样适用于以下解决方案):
glob
scandir
以下是不太吸引人的解决方案,更复杂,并且有更多警告。
在Windows上,PHP文件系统包装程序期望并返回ISO-8859-1字符串作为文件/目录名称。这给您两个选择:
在文件名中自由使用UTF-8,但要了解,非ASCII字符在PHP外部将 显示为错误 。非ASCII UTF-8字符将存储为多个 单个 ISO-8859-1字符。例如,ó将出现ó在Windows资源管理器中。
ó
ó
将文件/目录名称限制为ISO-8859-1中可以表示的字符。实际上,您将utf8_decode]在文件系统功能中使用UTF-8字符串之前先传递它们,然后传递条目scandir使您utf8_encode获得UTF-8中的原始文件名。
utf8_decode
utf8_encode
注意事项!
mb_convert_encoding