Php 谷歌地图地理编码[无效的_请求]但有效的URL

Php 谷歌地图地理编码[无效的_请求]但有效的URL,php,google-maps,google-geocoder,Php,Google Maps,Google Geocoder,我正在使用此函数获取数据库中某些地址的Lat en Lng: function geocode($street,$city,$country) { $straat = preg_replace('/ /', '+', $street); $stad = preg_replace('/ /', '+', $city); $land = preg_replace('/ /', '+', $country); $addr = $straat . '+' . $stad

我正在使用此函数获取数据库中某些地址的Lat en Lng:

function geocode($street,$city,$country) {
    $straat = preg_replace('/ /', '+', $street);
    $stad = preg_replace('/ /', '+', $city);
    $land = preg_replace('/ /', '+', $country);
    $addr = $straat . '+' . $stad . '+' . $land; 

    $apiuri = 'https://maps.googleapis.com/maps/api/geocode/json?address=' . $addr;
    $geocode=file_get_contents($apiuri);

    $output= json_decode($geocode);

    $lat = $output->results[0]->geometry->location->lat;
    $long = $output->results[0]->geometry->location->lng;

    $LatLng['lat'] = $lat;
    $LatLng['long'] = $long;

    return $LatLng;
}
对于大多数地址,它工作得很完美,但对于某些地址,我得到{results:[],status:INVALID_REQUEST},但是$apiuri在复制粘贴时工作得很好

我在$straat、$stad和$land上尝试了rawurlencode和utf8_编码,但没有效果

工作链接:=Široká+5+布拉格+捷克+共和国,由上述函数输出


故障可能与地址编码有关,但我看不出在何处或如何解决。

已解决:我忘记将页面的字符集设置为utf-8。我的错…我面临着同样的问题,你能解释一下你是如何将页面的字符集设置为utf-8的吗?字符集也是我的问题。对于将来发现此项的任何人,可以通过将此标记添加到HTML的部分来设置字符集: