Ich nenne die Google Geolocation-Dienst wie folgt aus:Zeichenkodierung in Geolokalisierung mit file_get_contents()/PHP
$querystring = "http://maps.googleapis.com/maps/api/geocode/json?sensor=false&latlng=".$row['lat'].",".$row['lng'];
$context = stream_context_create(array(
'http' => array(
'timeout' => 10
)
));
$f = file_get_contents($querystring, 0, $context);
$f = json_decode($f);
if(!isset($f->status) || $f->status != 'OK') continue;
$f = $f->results[0];
$location = $f->formatted_address;
ich dann den Ort in die Datenbank einfügen:
//add the location to the database
$sql = "INSERT INTO `wp_postmeta`
(`meta_id`, `post_id`, `meta_key`, `meta_value`)
VALUES
(
NULL,
'".intval($row['ID'])."',
'location',
'".mysql_real_escape_string($location)."'
)";
if($location) $insert = mysql_query($sql);
Das Problem: Einige Zeichen werden nicht gut angezeigt, wenn ich die Wordpress-Beiträge bearbeite. Wie zum Beispiel "R. Hilario Riberio, 41-243 - Praça da Bandeira, Rio de Janeiro, 20270-180, Brasilien" sollte sein "R. Hilário Riberio, 41-243 - Praça da Bandeira , Rio de Janeiro, 20270-180, Brasilien "
Ich benutze UTF-8 als Zeichencodierung auf der Website. Aber das ist irrelevant, denn phpMyAdmin zeigt an, dass die Daten auch mit den defekten Zeichen in die Datenbank eingetragen werden.
Wie lege ich die richtige Zeichencodierung fest?
Test # 1 kann helfen, aber es ist nicht 100% zuverlässig. Ich habe zu viele Fälle aus dem wirklichen Leben gesehen, in denen das Skript die Daten vor dem Speichern korrumpieren würde und sie vor der Anzeige vollkommen "korrupte". –