Unicode正在获取编码的CURL PHP

问题描述 投票:1回答:2

    if ($_GET["link"]!=""){
$curl = curl_init('http://exaple.com'.$link);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

$page = curl_exec($curl);
echo $page;
}

[您好,网站使用其他语言。字符被编码。我正进入(状态 ”??”和奇怪的文本,而不是字符“á”,“ i”,“á”等(Unicode)。有什么办法可以使其工作?

php web-scraping unicode php-curl
2个回答
0
投票

[First您必须标识源网站字符编码。

选择页面并下载...使用终端,输入:

$ curl -D headers.txt -o page.html http:/www.example.com/index.html

将响应标头保存到headers.txt,而页面源html存储到page.html

[使用文本编辑器检查两个文件,并搜索Content-Type,至少应在其中之一中找到字符编码的指示。

如果不成功,可以使用file尝试通过检查文件内容来“猜测”字符编码:

$ file -I page.html

输出看起来像这样:

page.html: text/plain; charset=iso-8859-1

第二您必须决定或了解目标字符集是什么:

  • 您是否将网页存储到文本文件中?文件的预期字符编码是什么?

  • 您是否正在PHP中解析网页以便获取您感兴趣的某些数据?

  • 您是否在网站上全部或部分提供网页?网站的字符编码是什么?

例如,假设您要使用编码为UTF-8的Unicode字符结尾。


最后使用$page = curl_exec($curl);检索页面后,改进您的PHP脚本以进行正确的字符集转换>

您可以使用mb-convert_encoding

mb-convert_encoding

或者$page = mb_convert_encoding( $page, 'ISO-8859-1', 'UTF-8' ); // from ----------^ ^--------to 可以用于相同的目的。


0
投票

您可以使用不同的方法。

© www.soinside.com 2019 - 2024. All rights reserved.