DOMDocumentの文字化けに悩まされています
cURLを使った場合のエンコードに悩まされています。
$http = new SimplecURL($url); /*cURLを使って指定ページのhtmlを取得する自己関数*/
$html = $http->execute();
$html = mb_convert_encoding($html, "UTF-8", "auto");
この後、取得したHTMLを、
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
//body部から該当するUrlを抽出
$extracts = $xpath->query($xPath);
foreach ($extracts as $value)
{
$results = trim($value->nodeValue);
$results[] = $result;
}
のようにして取得しているのですが、日本語が文字化けする場合が非常に多いです。
$html = mb_convert_encoding($html, "UTF-8", "auto");
とか、
$result = mb_convert_encoding($result, 'UTF-8', 'auto');
とかするのですがダメです。
色々なサイトでそうなのですが、例えばShift-JISで書かれていると思われる
http://www.nhk.or.jp/worldwave/abc/popup/abc120528.html
などでも日本語を
//div[@class=\"paragraph clearfix\"]//p[@class=\"ja\"]/text()
のようなxPathで取得すると文字化けして出てきます。
mb_convert_encoding($html, "UTF-8", "Shift-JIS")のようにしてもダメです。
どのようにすれば解決するのでしょうか?
アドバイスを頂けないでしょうか?
お礼
レンタルサーバなので、対応させることもできませんし、あきらめて英語にしようかと思います。回答ありがとうございました