別の 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
。