Php Nginx-浏览器中不显示umlauts为äöü的文件

Php Nginx-浏览器中不显示umlauts为äöü的文件,php,nginx,Php,Nginx,我正在将Linux Debian WheezY与PHP 5.5.1和Nginx 1.6.2一起使用,并搜索一个解决方案,以打开带有德语umlauts的文件,例如vögel.jpg或带有德语umlauts的目录中的文件,但似乎只有错误404 Not Found Nginx/1.6.2 如果我用f6öISO-8859-1和ascii键入v%f6gel.jpg而不是vögel.jpg,它会工作,并且文件会显示在浏览器窗口中 如果我用%C3%B6öUTF-8而不是vögel.jpg键入v%C3%B6ge

我正在将Linux Debian WheezY与PHP 5.5.1和Nginx 1.6.2一起使用,并搜索一个解决方案,以打开带有德语umlauts的文件,例如vögel.jpg或带有德语umlauts的目录中的文件,但似乎只有错误404 Not Found Nginx/1.6.2

如果我用f6öISO-8859-1和ascii键入v%f6gel.jpg而不是vögel.jpg,它会工作,并且文件会显示在浏览器窗口中

如果我用%C3%B6öUTF-8而不是vögel.jpg键入v%C3%B6gel.jpg,则在url字段中将文件名设置回vögel.jpg,并且不显示任何内容

我的Nginx设置是:

source_charset utf-8;
charset utf-8;
override_charset on;
字符集和source_字符集是根据将字符集utf-8添加到“Content-Type”响应头中的步骤确定的,但是,我不知道jpg文件是否使用了响应头

如果使用ascii或ISO-8859-1或其他字符集而不是utf-8,则问题保持不变:

source_charset iso-8859-1;
charset iso-8859-1;

source_charset utf-8;
charset iso-8859-1;
此外,如果包括nginx,则无任何更改:

include koi-utf;
include koi-win;
include win-utf;
这似乎不起作用:

source_charset ascii;
charset utf-8;
override_charset on;
charset_map ascii utf-8 {
    f6  c3b6;
}

nginx错误:无效值c3b6

nginx错误:无效值c3b6

我的nginx fastcgi设置

location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $uri $uri/ =404;

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
没有fastcgi也不会改变

根据PHP使用echo mb_detect_编码$filename;jpg文件编码是ascii,但如果我将其更改为utf-8,则无法在浏览器中打开jpg文件,其外观如下:vègel.jpg


即使没有nginx字符集,一切都保持不变。有人知道这个问题的解决方案是什么吗?或者使用nginx根本不可能在文件名中使用umlauts吗?非常感谢

检查php.ini文件中的default\u charset=UTF-8行,以使php文件在默认情况下使用该字符集工作

检查文件名的编码

$ LC_ALL=C ls --quoting-style=c v*
"v\303\266gel.jpg"  "v\366ogel.jpg"
第一个是UTF-8中的vögel.jpg,第二个是ISO-8859-1


如果您有第二个变体,那么您可能需要重命名文件。

我尝试将php.ini文件中的所有内容设置为UTF-8,但不幸的是,这没有任何帮助。老实说,我从未做过类似的事情,因为我的所有文件都是英文的,即使我的出生语言是西班牙语,我将进一步研究一下您的区域设置以及文件的真正命名方式。
charset_map utf-8 iso-8859-1 {
    c3b6    f6;
}
location ~ \.php$ {

fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $uri $uri/ =404;

fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
$ LC_ALL=C ls --quoting-style=c v*
"v\303\266gel.jpg"  "v\366ogel.jpg"