Tilfældigt gæt:json_encode
forventer UTF-8-kodede data og vil udvise den adfærd, du beskriver, på enhver ikke-UTF-8, ikke-ASCII-input. De data, du får fra databasen, er sandsynligvis Latin-1-kodet.
Indstil enten din databaseforbindelse til utf8
at modtage UTF-8-kodede data direkte fra databasen (se UTF-8 hele vejen igennem ), eller brug (og jeg hader at sige dette, fordi denne funktion bliver så ofte misbrugt, at den ikke engang er sjov, men den er korrekt anvendt her) utf8_encode
på alle data du får fra databasen for at konvertere den fra Latin-1 til UTF-8.
Så enten:
// set the connection charset
mysql_set_charset('utf8');
$result = mysql_query("SELECT post_status, post_title FROM wp_posts");
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$data['posts'][] = $row;
}
$json_string = json_encode($data);
...
eller:
$result = mysql_query("SELECT post_status, post_title FROM wp_posts");
$data = array();
while ($row = mysql_fetch_assoc($result)) {
$row = array_map('utf8_encode', $row);
$data['posts'][] = $row;
}
$json_string = json_encode($data);
...