尝试使用jQuery解析时会导致非法的JSON。整个文档,数据库连接采用UTF-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);
答案 0 :(得分:1)
PHP将对utf8字符进行编码。
jQuery可以解析它。
如果您回复浏览器,请不要忘记浏览器会解释utf8编码并显示字符。所以必须从CLI或从源读取json编码的字符串。
答案 1 :(得分:1)
您的输出在最后一个属性值后面有一个逗号:
},
}
这是无效的JSON。看起来您的PHP副本的执行情况严重受损json_encode
。
我会尝试使用全新安装的PHP在干净的虚拟机上试用您的代码。