0

我正在尝试通过以下网址访问文件:http : //www.myurl.com/伊势/image.jpg。

url 是预定义的,没有特定的格式或一致性。

我使用的基本 curl 功能适用于从 myurl.com 下载图像,但当 url 中包含日文字符时则不行。我尝试以各种方式(例如 urlencode、filter_var 和 mb_convert_encoding)清理 url,但没有成功。

如果我直接从浏览器访问 url,那很好 - 所以我无法解决的唯一问题是 curl 函数中非 ASCII(日语)字符的处理。

我的问题是——如何解决?是否可以在函数中包含 curl 选项,以便像浏览器一样读取 url?

4

3 回答 3

3

如果我直接从浏览器访问网址就可以了

这意味着您的浏览器编码“伊势”(如 %E4%BC%8A%E5%8B%A2)并在后台发送请求。但仍保留在浏览器地址框中的外观。

我的建议是使用 http 调试器,例如 firefox 中的“firebug”或 chrome 中的“开发者工具”。

检查“网络”选项卡,并在其详细信息页面中找到 REAL 请求参数。然后您可以找到您的浏览器发送的内容。

希望这有帮助。

于 2013-04-22T09:39:03.923 回答
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 さん.
于 2013-04-22T10:53:11.677 回答
0

将路径参数附加为 url 编码字符串,它将起作用。前任:

$url = 'http://rp.postcontrol.ru/';
$filename = urlencode("伊勢.txt");

$url .= $filename;
于 2018-01-17T10:15:23.920 回答