Unicode 正在获取编码的 CURL PHP
Unicode is getting Encoded CURL PHP
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)。
有什么办法让它发挥作用吗?
首先你要确定源网站的字符编码。
选择一个页面并下载...使用终端,输入:
$ curl -D headers.txt -o page.html http:/www.example.com/index.html
响应头保存到headers.txt
,而页面源html保存到page.html
用文本编辑器检查这两个文件并搜索 Content-Type
您应该至少在其中一个文件中找到字符编码的指示。
如果不成功,您可以使用 file
通过检查文件内容来尝试 "guess" 字符编码:
$ file -I page.html
输出如下所示:
page.html: text/plain; charset=iso-8859-1
其次你必须决定或理解目标字符集是什么:
您是否将网页存储到文本文件中?文件的预期字符编码是什么?
您是否在 PHP 中解析网页以获取您感兴趣的一些数据?
您是否在您的网站上(全部或部分)返回网页?网站的字符编码是什么?
让我们假设(例如)您希望最终得到编码为 UTF-8.
的 Unicode 字符
最后 改进您的 PHP 脚本,以便在使用 $page = curl_exec($curl);
检索页面后进行正确的字符集转换
您可以使用 mb-convert_encoding
$page = mb_convert_encoding( $page, 'ISO-8859-1', 'UTF-8' );
// from ----------^ ^--------to
或者 iconv
可用于相同目的。
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)。 有什么办法让它发挥作用吗?
首先你要确定源网站的字符编码。
选择一个页面并下载...使用终端,输入:
$ curl -D headers.txt -o page.html http:/www.example.com/index.html
响应头保存到headers.txt
,而页面源html保存到page.html
用文本编辑器检查这两个文件并搜索 Content-Type
您应该至少在其中一个文件中找到字符编码的指示。
如果不成功,您可以使用 file
通过检查文件内容来尝试 "guess" 字符编码:
$ file -I page.html
输出如下所示:
page.html: text/plain; charset=iso-8859-1
其次你必须决定或理解目标字符集是什么:
您是否将网页存储到文本文件中?文件的预期字符编码是什么?
您是否在 PHP 中解析网页以获取您感兴趣的一些数据?
您是否在您的网站上(全部或部分)返回网页?网站的字符编码是什么?
让我们假设(例如)您希望最终得到编码为 UTF-8.
的 Unicode 字符最后 改进您的 PHP 脚本,以便在使用 $page = curl_exec($curl);
您可以使用 mb-convert_encoding
$page = mb_convert_encoding( $page, 'ISO-8859-1', 'UTF-8' );
// from ----------^ ^--------to
或者 iconv
可用于相同目的。