Google Geocode funktioniert nicht für Adressen mit Sonderzeichen aus der Datenbank

Ich habe ein Problem mit Sonderzeichen für Adressen aus meiner Datenbank für Google Geocode, aber nicht, wenn ich sie fest codiere.

Einfacher Geocode-Code

$url = "http://maps.googleapis.com/maps/api/geocode/json?address=". $address . "&sensor=true";      
$jsonfile = file_get_contents($url);
$jsondata = json_decode($jsonfile);
$lat = $jsondata->results[0]->geometry->location->lat;
$lng = $jsondata->results[0]->geometry->location->lng;

Dieser Code funktioniert für Standardadressen, jedoch nicht, wenn die Adresse ein Sonderzeichen enthält, WENN sie aus meiner Datenbank stammt.

Wenn ich die Adresse fest codiere als:

$address = "10 Montée de Clausen, 1343 Luxemburg City, Luxembourg";
$address = str_replace(" ","+",$address);

Der Code funktioniert. Wenn die Adresse aus meiner Datenbank stammt

$query="SELECT * FROM mytable";
$result=mysqli_query($GLOBALS["___mysqli_ston"], $query);
while($row=mysqli_fetch_assoc($result)){
    $address = $row['address'];
    $address = str_replace(" ","+",$address);
    // geocode code.
}

Es funktioniert nicht

Die Datenbank befindet sich in utf8_unicode_ci. Wenn ich die $ url einschließlich der Adresse, auch wenn sie aus meiner Datenbank stammt, wiedergebe und diese URL dann in einen Browser übertrage, gibt die URL tatsächlich die richtigen Daten aus, aber die Verwendung dieser URL in meinem Code funktioniert nicht.

Ich habe versucht, die Adresse vor dem str_replace und auch nach dem str_replace zu verschlüsseln und es funktioniert immer noch nicht.

Wie bringe ich es zum Laufen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage