PHP Curl UTF-8 文字セット 質問する

PHP Curl UTF-8 文字セット 質問する

別の Web ページを呼び出してページの HTML をすべて書き込む PHP スクリプトがあり、すべて正常に動作しますが、文字セットの問題があります。私の PHP ファイルのエンコードは UTF-8 で、他のすべての PHP ファイルは正常に動作します (つまり、サーバーに問題はありません)。そのコードで何が欠けているのでしょうか。スペイン語の文字がすべておかしく見えます。追伸: これらのおかしな文字の元のバージョンを PHP に書き込んだところ、すべて正確に見えます。

header("Content-Type: text/html; charset=utf-8");
function file_get_contents_curl($url)
{
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_HEADER,0);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
    $data=curl_exec($ch);
    curl_close($ch);
    return $data;
}
$html=file_get_contents_curl($_GET["u"]);
$doc=new DOMDocument();
@$doc->loadHTML($html);

ベストアンサー1

シンプル: curl を使用すると、文字列がエンコードされるので、utf-8デコードするだけで済みます。

Description

string utf8_decode ( string $data )

この関数は、UTF-8エンコードされていると想定されるデータ を にデコードしますISO-8859-1

おすすめ記事