在 PHP 的文件系统函数中处理 UTF-8 文件名
使用 PHP 的 mkdir 函数创建包含 UTF-8 字符的文件夹时,您可能会遇到显示由于编码而导致 Windows 资源管理器出现问题
解决方案:URL 编码文件名
要解决此问题,请使用 urlencode 函数将所需的文件夹名称转换为 URL 安全格式,然后再将其传递给mkdir:
$dir_name = urlencode("Depósito"); mkdir($dir_name);
这可确保文件夹名称中的所有字符都被编码为有效的文件名所有操作系统。要检索原始 UTF-8 文件名,请使用 urldecode。
替代解决方案(带警告)
虽然 URL 编码是推荐的解决方案,但还有一些不太有吸引力的替代方案:
转换为 ISO-8859-1 (Windows仅)
在 Windows 上,您可以使用 UTF-8 文件名,但请注意,非 ASCII 字符在 PHP 之外将无法正确显示。要解决此问题,请使用 utf8_decode 将文件名转换为 ISO-8859-1,然后再在文件系统函数中使用它们。
限制为 ISO-8859-1 字符
或者,将文件名限制为 ISO-8859-1 中可表示的字符。使用 utf8_decode 和 utf8_encode 在 UTF-8 和 ISO-8859-1 之间转换文件名。
但是,这些替代方案带有警告:
以上是如何在 PHP 文件系统函数中处理 UTF-8 文件名?的详细内容。更多信息请关注PHP中文网其他相关文章!