Willekeurige gok:json_encode
verwacht UTF-8-gecodeerde gegevens en zal het gedrag vertonen dat u beschrijft op niet-UTF-8, niet-ASCII-invoer. De gegevens die u uit de database haalt, zijn waarschijnlijk Latin-1-gecodeerd.
Stel uw databaseverbinding in op utf8
om UTF-8-gecodeerde gegevens rechtstreeks uit de database te ontvangen (zie UTF-8 helemaal ), of gebruik (en ik zeg dit niet graag, omdat deze functie zo vaak wordt misbruikt dat het niet eens grappig is, maar het wordt hier correct toegepast) utf8_encode
op alle gegevens die u uit de database haalt om deze van Latin-1 naar UTF-8 te converteren.
Dus ofwel:
// 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);
...
of:
$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);
...