PHPのcurl()でレスポンスが文字化けしたら確認すること2つ

curlで情報取得するときに返り値が文字化けした時の対処法です。

以下の2点を確認します。

  • 取得先のHTMLが文字コード「EUC-jp」で書かれてないか?
  • レスポンスがgzipで圧縮されていないか?

細かいことは理解できなくても構いません。

次の2つの方法を試してみてください。

① $res=mb_convert_encoding($res, ‘utf-8’, ‘euc-jp’); を追加し、euc-jpからutf-8に変換してから扱う。
② curl_setopt($ch, CURLOPT_ENCODING, “gzip”); を追加し、gzipで圧縮されるのを防ぐ。

※ ①の$resには、curlで取得したデータが入ります。

コメント

タイトルとURLをコピーしました