PHP、CURL、およびUT-8ギリシャ文字に関して問題があります。
Webサイト(具体的にはブログ)からテキストを取得しようとしましたが、取得したテキストを読むと破損しています。ÎÏκοÏÏÏÏοÏÏÏÏÏονのようなものが表示されます。一方、英語の文字は見栄えがします。
Webサイトの文字セットは「UTF-8」であり、スクリプトの文字セットも同様です。
CURLには次の設定を使用します。
$ch = curl_init();
$useragent='Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2';
$header = array('Accept-Charset: UTF-8');
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 2);
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
Xpathクエリを使用し$res=$xp->query("...")
てテキストの場所を見つけます。
それから私はこのようなテキストを取ります:
foreach($res as $text_result)
$texter=trim($text_result->nodeValue);
返されたテキスト文字セットmb_detect_encoding
とその適切な「UTF-8」を確認しました。
スクリプトはほとんどのWebサイトで正しく実行されますが、そのうちの2つでは失敗します。
何が問題なのかわかりません。
誰かアイデアがありますか?
よろしくお願いします。
アップデート
これを追加してエラーを修正しました:
$doc->loadHTML('<?xml encoding="UTF-8">' . $html);
しかし今、私がデータベースにテキストを挿入するとき、それらは壊れたままです。私のPC(easyphp)でも同じように動作します。
私は000webhostで無料のホストを所有しています。