0

WebページのスクレイピングにSimple HTML DOM Classを使用しています。問題は、Unicode 文字に対して奇妙な文字を生成することです。

हंगामा है कà¥à¤¯à¥‚ठबरपा / अकबर इलाहाबादी 

ヒンディー語のユニコード文字に対して。

लेकिन इतना तो हुआ कुछ लोग

その私のヒンディー語のテキスト。

画面出力を印刷すると、同じ奇妙な文字で出力されます。

function getDomContent($data) {
    $html = new simple_html_dom();
    $html->load($data);

    foreach ($html->find('table[id=content] li') as $element) {
        $content[] = $element->plaintext;
    }

    return $content;
}

マイカール機能

function getContent($url) {
    $timeout = 5;
    $ch = curl_init();
    $user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
    curl_setopt($ch, CURLOPT_TIMEOUT, 120);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

$data = getContent($url);
$content = getDomContent($data);
echo '<pre>Array Content: ' . '<br/>';
print_r($content);
die($query);
4

2 に答える 2

0

エンコードに問題があるようです。iconv PHP 関数を使用してみてください。

$text = iconv("current text codification", "UTF-8", $text)

ただし、現在のエンコーディングがわからない場合は、iconv_set_encodingを使用してグローバル構成のように設定してみてください。

iconv_set_encoding("internal_encoding", "UTF-8");
于 2013-08-12T09:32:39.017 に答える
0

ページにヘッダーを追加して解決しました...

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

それはすべての問題を解決しました。

于 2013-09-03T05:18:02.697 に答える