我想將用戶條目發送到Google的地理編碼API。這樣做,我發現了一個問題。 當我通過我的腳本將用戶輸入(例如「köln+ Germany」)發送到Firefox中的api時,它非常棒。但在Internet Explorer中,它不起作用。網址編碼在Firefox和Internet Explorer中的行爲有所不同
這裏是免稅的我的代碼這足以說明問題:在Firefox
header('Content-type: text/html; charset=UTF-8');
header('Cache-Control: no-cache, must-revalidate');
$loc = urlencode($_GET['loc']);
echo $address = "http://maps.googleapis.com/maps/api/geocode/json?address=$loc&sensor=false";
輸出($地址):http://maps.googleapis.com/maps/api/geocode/json?address=k%C3%B6ln+Germany&sensor=false(作品!)
在Internet Explorer中同樣是: http://maps.googleapis.com/maps/api/geocode/json?address=k%F6ln+Germany&sensor=false(返回「INVALID_REQUEST」)
您可以看到ö編碼的區別。在Firefox中它是%C3%B6,在IE中它是k%F6。 如果我以用戶輸入「k%C3%B6ln + Germany」開頭,它在Internet Explorer中也像魅力一樣。
如何用PHP確保我的特殊字符在Internet Explorer中的轉換與Firefox中的相同。所以ö=%C3%B6而不是ö= k%F6
非常感謝!
保羅
感謝您的回答!我以前可能應該說過,但實際上我不打算輸出一個html頁面。它最終會生成json,所以我對添加meta標籤有點猶豫。你覺得怎麼樣? –
更新:當輸出HTML時,這似乎也不起作用。任何其他想法? –