PHP Curl UTF-8 字符集

2022-08-30 14:49:10

我有一个php脚本,它调用另一个网页并写入页面的所有html,一切正常,但是存在字符集问题。我的php文件编码是utf-8,所有其他php文件工作正常(这意味着服务器没有问题)。该代码中缺少的东西是什么,所有西班牙语字母看起来都很奇怪。PS.当我将这些奇怪的字符原始版本编写成php时,它们看起来都很准确。

header("Content-Type: text/html; charset=utf-8");
function file_get_contents_curl($url)
{
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_HEADER,0);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
    $data=curl_exec($ch);
    curl_close($ch);
    return $data;
}
$html=file_get_contents_curl($_GET["u"]);
$doc=new DOMDocument();
@$doc->loadHTML($html);

答案 1

简单:当您使用curl时,它会将字符串编码为您只需要解码它们。utf-8

Description

string utf8_decode ( string $data )

此函数将数据 (假定已编码) 解码为 。UTF-8ISO-8859-1


答案 2

您可以使用此标头

   header('Content-type: text/html; charset=UTF-8');

并在解码字符串后

 $page = utf8_decode(curl_exec($ch));

它对我有用


推荐