我正在Debian 6系统上运行一个Django站点,使用gunicorn服务器和处理静态文件的nginx 0.7.67。 文件系统区域设置为sv_SE.UTF-8。
我遇到了另一个用户上传包含unicode字符的文件名的问题。 这导致服务器在尝试提供上传的文件时抛出404错误。 当我从我的系统上传相同的文件时,该站点现在正确地提供该文件。 但是,它并没有删除旧文件,尽pipe它们在各方面似乎完全相同。 以下是当前目录列表。
-rwxr-xr-x 1 www-data www-data 1188260 25 jan 22.53 Läxa 15_geometri.pdf -rwxr-xr-x 1 www-data www-data 1188260 27 jan 10.45 Läxa 15_geometri.pdf
现在怎么可能有两个相同的文件具有相同的(明显的)名称? 首先可能是404的原因,即第一次上传有什么问题? URL和以前一样,只是现在不会抛出404。
他们有不同的文件名编码。 在目录中做什么输出:
$ file -i *
由于unicode标准化,可视化相同的unicodestring可能会有所不同。 您可以通过尝试执行ls > a.txt并将文件分析为二进制数据来逐字节地检查名称是否不同。
PS。 我希望ls不会执行任何unicode标准化本身,并提供“原样”的文件名…