我的代码:
$filesss = glob('./pic/*.jpg');
print_r($filesss);
在Windows环境上运行后,输出的文件名是乱码。
乱码原因:
在Windows上,PHP默认使用系统默认的编码来处理文件名,这可能导致中文或其他非ASCII字符的文件名在输出时显示为乱码。
解决办法:
使用 iconv()
函数将文件名转换为合适的编码再输出。
最终代码:
$filesss = glob('./pic/*.jpg');
// 遍历文件数组,并使用 iconv 函数转换编码
foreach ($filesss as $file) {
// 将文件名从系统默认编码转换为 UTF-8
$file_utf8 = iconv("CP936", "UTF-8", $file); // CP936 是 Windows 下的默认中文编码
// 输出转换后的文件名
echo $file_utf8 . "\n";
}
iconv("CP936", "UTF-8", $file)
是 将 Windows 默认的中文编码(CP936,也称为 GBK)转换为 UTF-8 编码,从而输出正确的文件名。
如果文件名的原始编码不是 CP936,而是其他编码(如 UTF-8),则需要根据实际情况调整 iconv()
函数中的参数。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容