这有点奇怪,我无法再现你的错误。也许这与您上载的文件名/文件系统的不同字符编码有关。处理文件上传时,WordPress会清理文件名以删除空格和其他一些不需要的字符。该消毒由以下人员执行sanitize_file_name
上载完成时。第一部分(和整体)如下所示:
$filename_raw = $filename;
$special_chars = array("?", "[", "]", "/", "\\\\", "=", "<", ">", ":", ";", ",", "\'", "\\"", "&", "$", "#", "*", "(", ")", "|", "~", "`", "!", "{", "}", chr(0));
$special_chars = apply_filters(\'sanitize_file_name_chars\', $special_chars, $filename_raw);
$filename = str_replace($special_chars, \'\', $filename);
$filename = preg_replace(\'/[\\s-]+/\', \'-\', $filename);
$filename = trim($filename, \'.-_\');
正如您所看到的阵列
$special_chars
包含严肃的口音,但不包含尖锐的口音。我看不出为什么这个代码会过滤掉
á
字符(除非您安装了一些连接到
sanitize_file_name_chars
或
sanitize_file_name
). 我可以想象á有不止一个unicode表示形式(例如瑞典字符åäö),或者您正在上载的文件名是使用ISO-8859-1编码的,因此请尝试隔离您的案例中使用的文件名,如果可能的话,尝试上载几个不同编码的文件名。此外,尝试将此问题与服务器或客户端问题隔离开来,即将同一文件上载到不同的服务器,以了解其在不同系统中的行为是否相同。
This image, 例如,在OS X/MAMP上运行的我的clean WP安装中,上传就可以了。