当我在Windows Server上通过IIS上传带有UFT-8文件名的文件时,文件名将被破坏。 (它们被更改为好像它们以ASCII编码,因此它们不再可访问)。我想知道是否有任何解决这个问题的方法。我还要提一下,我的Windows Server没有UTF-8文件名的任何问题,我可以通过RDP或FTP创建它们。只有通过IIS上载时才会出现此问题。
配置:
操作系统:Windows Server 2008 SP1
Web服务器:IIS 7.5
通过fastcgi执行的PHP脚本上传
答案 0 :(得分:1)
我认为,问题在于IIS。 IIS将所有请求数据转换为ascii,然后再将它们发送到PHP进程。由于这种转换,utf-8编码请求的所有特殊字符都将被销毁。
除此之外,PHP在Windows上的文件名中处理utf-8也存在问题。这个Bug已经用PHP 7.1修复: https://bugs.php.net/bug.php?id=33350
我通过更改IIS中的设置并升级到PHP 7.1来解决问题。