1

我有以下 www.mywebsite.com/upload/server/php/files/foto/test/Aston_Martin_DBS_V12_coupé_(rear)_b-w.jpg

该文件通过脚本上传。该文件存在于服务器上。但是,由于 url (é) 中的特殊字符,我遇到了一些问题。

服务器上的文件名是Aston_Martin_DBS_V12_coup%C3%A9_(rear)_b-w.jpg,这是正确的。但是不知何故,我的浏览器 (Chrome) 将此页面请求为 ISO-8859-1 而不是 UTF-8。

因此,我得到一个 404。 在此处输入图像描述

我正在使用 jQuery 文件上传插件。

4

3 回答 3

1

我从这里删除了我的答案,我写了新的:

通常网站不包含非标准字符的文件。文件通常会删除非标准字符,有时这些字符会替换为类似的标准字符(波兰语 ą 到 a,ś 到 s)。例如 - 我手动重命名文件,或者当我有很多文件时 - 我只是使用 bash 或 php 脚本来删除/替换服务器上文件名中的字符。

无论如何,如果您必须使用原始文件名 - 您必须从 ISO 解码它们并将它们编码为 UTF8。

看看这里的 php 代码片段:

如何提供带有特殊字符的 HTTP 文件

于 2012-10-03T18:14:15.667 回答
0

一些特殊的字符在文件名的 url 中产生问题,例如

+ ,#,%,&

对于那些通过 url 访问的文件,生成不包含上述字母的文件 forex

str_replace(array(" ","&","'","+","#","%"),"-","filename")

它会正常工作

于 2014-01-18T07:01:18.863 回答
-1

如果文件名包含%字符代码,则需要在 URL 中对这些代码进行编码。尝试访问Aston_Martin_DBS_V12_coup%25C3%25E9_(rear)_b-w.jpg

于 2012-10-03T18:12:27.993 回答