我正在尝试访问此网址的文件:http://www.myurl.com /伊势/image.jpg。
网址是预定义的,没有特定的格式或一致性。
我正在使用的基本卷曲功能适用于从myurl.com下载图像,但在网址中包含日文字符时则不行。我尝试过以各种方式清理url(例如urlencode,filter_var和mb_convert_encoding),但没有成功。
如果我直接从浏览器访问网址,那很好 - 所以我唯一无法解决的问题是在curl函数中处理非ASCII(日文)字符。
我的问题是 - 如何解决这个问题?是否有一个卷曲选项可以包含在函数中,以便像浏览器一样读取URL?
答案 0 :(得分:3)
如果我直接从浏览器访问网址,那很好
这意味着您的浏览器编码“伊势”(如%E4%BC%8A%E5%8B%A2)并在后台发送请求。但请继续浏览浏览器地址框。
我的建议是使用http调试器,例如firefox中的“firebug”或chrome中的“开发者工具”。
检查“网络”选项卡,并在其详细信息页面中找到REAL请求参数。然后,您可以找到您的浏览器发送的内容。
希望这有用。
答案 1 :(得分:1)
没什么特别的
我用UTF-8创建了一个php文件(使用记事本的save as
encoding
UTF-8
):
<?php
$url = 'http://rp.postcontrol.ru/伊勢.txt';
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
if ( $result = curl_exec($ch) )
{
echo $result;
}
else
echo "cURL error: ".curl_error($ch);
curl_close( $ch );
您可以在http://rp.postcontrol.ru/eddz.php.txt
处获取PHP文件它适用于我并返回(伊势.txt也是UTF-8):
おはようございます eddz さん.
答案 2 :(得分:0)
将path参数附加为url编码的字符串,它将起作用。 例如:
$url = 'http://rp.postcontrol.ru/';
$filename = urlencode("伊勢.txt");
$url .= $filename;