यादृच्छिक अनुमान:json_encode
UTF-8 एन्कोडेड डेटा की अपेक्षा करता है और किसी भी गैर-UTF-8, गैर-ASCII इनपुट पर आपके द्वारा वर्णित व्यवहार को प्रदर्शित करेगा। डेटाबेस से आपको जो डेटा मिल रहा है, वह संभवतः लैटिन-1 एन्कोडेड है।
या तो अपने डेटाबेस कनेक्शन को utf8
. पर सेट करें डेटाबेस से सीधे UTF-8 एन्कोडेड डेटा प्राप्त करने के लिए (देखें UTF-8 सभी तरह से ), या उपयोग करें utf8_encode
डेटाबेस से प्राप्त होने वाले सभी डेटा पर इसे लैटिन-1 से UTF-8 में बदलने के लिए।
तो या तो:
// 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);
...
या:
$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);
...