PHP Curl UTF-8 Charset

Bor*_*rat 25 php utf-8 character-encoding

我有一个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);
Run Code Online (Sandbox Code Playgroud)

小智 34

简单:当你使用curl时,它会对utf-8你需要解码的字符串进行编码.

Description

string utf8_decode ( string $data )
Run Code Online (Sandbox Code Playgroud)

该函数对假设UTF-8编码的数据进行解码ISO-8859-1.


ami*_*beh 12

你可以使用标题

   header('Content-type: text/html; charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)

并在解码字符串之后

 $page = utf8_decode(curl_exec($ch));
Run Code Online (Sandbox Code Playgroud)

它对我有用