使用PHP为Google Maps地址解析器编码变量

问题描述:

我正尝试使用PHP为Google地图地理编码API的URL编码变量。我都用了用urlencode和rawurlencode,我也得到了相同的结果为使用PHP为Google Maps地址解析器编码变量

Székesfehérvár, Hungary 

PHP返回

Sz%E9kesfeh%E9rv%E1r%2C%20Hungary 

不能由任何在线解码器进行解码。

当我与在线编码工具,我得到编码:

Sz%C3%A9kesfeh%C3%A9rv%C3%A1r%2C+Hungary 

当我插上,在直接向谷歌地图地理编码器URL,它是成功的。 PHP函数每次都失败。

这是我使用的代码:

function getLatandLong($landmark,$city,$state) 
{ 

global $lat; 
global $long; 
global $city; 
if (!empty($landmark)) { $encoded_vars = "$landmark,$city,+$state"; 
} else { $encoded_vars = "$city, $state"; } 

$encodedVars = urlencode($encoded_vars); 
$doc = new DOMDocument(); 

$doc->load("http://maps.google.com/maps/api/geocode/xml?address=$encodedVars&sensor=false"); //input address 

嗯,我试过

$encodedVars = utf8_encode($encoded_vars); 

这似乎是工作,即使回波显示(可能是因为我不;吨有在我的抓页上设置的右页编码:

Székesfehérvár,+Hungary