1

我正在尝试将下面的链接卷曲,该链接位于 GBK 中。我想提取产品和图像的标题。但是当我回显文件以测试它是否正常工作时,我没有得到汉字。我需要使用 domxpath 提取并在我的网站上显示字符,相同的字符,而不是奇怪的字符。这实际上是如何工作的?

$ch = curl_init("http://item.taobao.com/item.htm?spm=a2106.m874.1000384.41.aG3Kbi&id=20811635147&_u=o1ffj7oi9ad3&scm=1029.newlist-0.1.16&ppath=&sku=");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);


$doc = new DOMDocument();
$searchPage = mb_convert_encoding($content, 'utf-8', "auto");
$doc->loadHTML($searchPage);
echo $doc->saveHTML(); 
4

2 回答 2

3

检查 php.ini 中的 mbstring.language 是否设置为 GBK,或显式使用

$searchPage = mb_convert_encoding($content, 'utf-8', "gb18030");
于 2013-07-24T02:25:18.487 回答
0

我也有同样的问题。解决方案对我有用:

  $str = file_get_contents($url);
  $str = mb_convert_encoding($str,'utf-8', "gb18030");
  $str = str_replace('<head>', '<head><meta HTTP-EQUIV=Content-Type content="text/html;charset=utf-8">', $str);
  $dom = new DOMDocument('1.0');
  @$dom->loadHTML($str);

DOMDocument 读取您在 html 中的编码声明,将其放在 head 之后

于 2014-01-03T08:59:37.210 回答