簡體   English   中英

字符編碼中的CURL錯誤

[英]CURL Error in Encoding the Characters

我正在嘗試從網頁中獲取一些數據。 但是問題不是拉說:

64 × 191 × 75 cm

它在回顯上顯示為

64 × 191 × 75 cm 

我的代碼:

<?php

$url = "http://www.google.co.uk"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Googlebot/2.1;      +http://www.google.com/bot.html)");
curl_setopt($ch, CURLOPT_ENCODING ,"");

$html = curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$q_Dimensions = "//tr/td[@class='FieldTitle'][contains(.,'Dimensions of packed product (W×H×D):')]/following-sibling::td/text()";
$dimentionsQ = $xpath->query($q_Dimensions);
$dimentions = $dimentionsQ->item(0)->nodeValue;
echo $dimentions;
exit();

我相信這可能是字符編碼的某種問題,但無法進一步解決。 任何幫助深表感謝。

為CURLOPT_ENCODING設置另一個curl選項並將其設置為“”,以確保它不會返回任何垃圾

   curl_setopt($ch, CURLOPT_ENCODING ,"");

另外,在header()中將charset設置為UTF-8也可以正常工作:

// add this on the top of your php script
header('Content-Type: text/html; charset=utf-8');

$url = "google.co.uk";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Googlebot/2.1;      +http://www.google.com/bot.html)");
curl_setopt($ch, CURLOPT_ENCODING ,"");

$html = curl_exec($ch);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$q_Dimensions = "//tr/td[@class='FieldTitle'][contains(.,'Dimensions of packed product (W×H×D):')]/following-sibling::td/text()";
$dimentionsQ = $xpath->query($q_Dimensions);
$dimentions = $dimentionsQ->item(0)->nodeValue;
echo $dimentions; // 64 × 191 × 75 cm
exit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM