當試圖用jQuery解析時,會導致非法的JSON。整個文檔,數據庫連接以UTF-8編碼。json_encode不能轉義UTF-8 w/PHP 5.2.8
代碼
header('Content-Type: application/json; charset=utf-8');
echo (json_encode($products));
這就是輸出(更新):
{
"D8": {
"title": "Green A\/C U\/V Dye Self-Measure bottle treats 32 véhicules 8 oz. (237 ml)",
"image": "http:\/\/www.supercool.ac\/wp-content\/uploads\/2011\/10\/D8.png",
"Description": "<ul>\n<li>Efficace dans le R-134a et R-12 systèmes de réfrigération<\/li>\n<li>Detectable when exposed to U\/V light<\/li>\n<li>Compatible avec PAG, ester, les huiles minérales et<\/li>\n<li>Ne contient pas de solvants!<\/li>\n<li>Will not harm A\/C systems or recovery equipment<\/li>\n<li>Universal A\/C Dye Safe for Hybrid and<br \>\n Véhicules électriques<\/li>\n<li>Partie # D8<\/li>\n<\/ul>\n"
}
}
不應該這樣被默認逃脫?我能做些什麼來逃避它?
更新:
json_encode被重整的HTML(描述字段)。它產生了一個無效的<br />
的br標籤,注意正斜槓。我認爲這僅限於5.2.8。爲了解決這個問題,我剛剛剝離了br標籤作爲臨時解決方案,直到我能說服主機升級。
preg_replace('/\<br\s\/>/', '', string);
咦?它應該默認這樣做。奇怪的 –
在那裏沒有特殊含義的字符,它不需要轉義。 – Quentin
http://php.net/manual/en/function.json-encode.php - 搜索utf-8 –