PHP 从Linux远程下载到Windows解压zip后,中文名出现乱码例如:鎵归噺淇敼琛ㄥ墠缂€—瀹炵敤

这种问题可能是由于文件名编码不同造成的。在 Linux 中,通常使用 UTF-8 编码,而在 Windows 中,通常使用 GBK 或者 UTF-16 编码。

您可以尝试以下方法解决这个问题:

  1. 将 PHP 脚本中下载的文件的编码转换为 UTF-8,这样在 Windows 上解压缩后就能正确显示中文文件名了。可以使用 iconv 或者 mb_convert_encoding 等函数实现编码转换。

  2. 在下载文件时,指定文件名的编码为 UTF-8。在 PHP 中,可以使用 urlencode 函数将中文文件名进行编码,然后在下载时指定编码,例如:

    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . urlencode($filename) . '"; filename*=utf-8\'\'' . urlencode($filename));
    readfile($filepath);

    这样下载到 Windows 后,解压缩工具就可以正确识别中文文件名了。

  3. 在 Windows 上安装支持 UTF-8 编码的解压缩工具,例如 7-Zip。这样即使文件名编码不同,解压缩工具也能正确识别中文文件名。

希望这些方法可以帮助您解决问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞6
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容