Php 文件\u获取\u内容-URL中的特殊字符

Php 文件\u获取\u内容-URL中的特殊字符,php,Php,我正在尝试使用文件获取内容从远程服务器获取图像。图像的URL可能包含空格和/或特殊字符,如ý、á、í等,当它这样做时,操作失败,HTTP代码400-错误请求。如果我尝试使用urlencode或rawurlencode对url(或该url的段)进行编码,我会得到404 当图像URL不包含空格或特殊字符时,下载时不会出现问题 我有一种预感,这与编码有关,但我就是搞不懂。 有没有我缺少的编码选项?是否必须为请求设置头?文件内容的问题在于UTF-8编码(尚未在PHP中实现) 如果要使用此功能下载文件,必

我正在尝试使用
文件获取内容
从远程服务器获取图像。图像的URL可能包含空格和/或特殊字符,如ý、á、í等,当它这样做时,操作失败,HTTP代码400-错误请求。如果我尝试使用
urlencode
rawurlencode
对url(或该url的段)进行编码,我会得到404

当图像URL不包含空格或特殊字符时,下载时不会出现问题

我有一种预感,这与编码有关,但我就是搞不懂。
有没有我缺少的编码选项?是否必须为请求设置头?

文件内容的问题在于UTF-8编码(尚未在PHP中实现) 如果要使用此功能下载文件,必须在URL上执行类似操作:

$url\u utf8=rawurlencode(utf8\u encode($url))

及之后:


$content=file\u get\u contents($url\u utf8)

alickus:这实际上不是重复的,您链接的问题是关于响应内容中的UTF-8,而不是URL。请在浏览器中打开该图像。查看浏览器如何对URL进行编码。然后查看
echo urlencode($url)的输出
并查找差异如何清除特殊字符的文件名,然后对用户输入执行相同操作?除非PHP文件保存为
ISO-8859-1
,否则这可能会导致不可预测的结果。