Google 通貨コンバータの URL に対して curl リクエストを実行しようとしています。この部分は機能し、JSON データが返されますが、データのエンコーディングが間違っているようです。エンコーディングを変換したり値を調整しようとすると、うまくいかず、json_decode が NULL を返します。
エンコーディングを指定する必要がありますか、それともキーが引用符で囲まれていないことに関連していますか?
それらから結果を取得するためのコードを次に示します。
$url = "https://www.google.com/ig/calculator?hl=en&q=" . $amount . $from . "=?" . $to;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$return = curl_exec($ch);
curl_close($ch);
var_dump($return);
結果は通常このあたりです {lhs: "9Â 808.90 U.S. dollars",rhs: "7Â 986.40287 Euros",error: "",icc: true}
エンコーディングを ISO-8859-1 に変換しましたが、適切なスペースがありましたが、まだ json_decode が適切に行われません...
助言がありますか?