我有一个PHP脚本,返回json_encoded反应就是喜欢这样:AJAX JSON转换符号到HTML特殊字符
//PHP
$response = array('type' => 'success', 'content' => '&&!%$#!some words');
echo json_encode($response);
return;
现在的JS是在得到响应,并试图将这些内容在一个textarea:
$('#some_form').ajaxForm({
success: function(resp){
if(resp.type === 'success')
{
$('#text_area').val(resp.content);
}
},
dataType: 'json'
});
脚本的内容将在文本区域显示为这样:
&&!%$#!some words
为什么“&”符号被搞乱了,但没有其他标点符号?有没有解决的办法?我希望&符号在文本区域中显示为常规符号。
有没有内置函数来做到这一点,这里是另一个线程在同一个问题:http://stackoverflow.com/questions/3700326/decode-amp-back-to-in-javascript –
检查内容json_encode之前的'$ response'变量,我敢打赌这个'&已经在那儿了(或者它是与你的数据混淆的ajaxForm插件) – arnaud576875
@ arnaud576875没有理由让PHP使用HTML编码在一个变量中 - 它不知道你要处理这些数据。 json_encode函数可能导致这种情况,但我怀疑这是在浏览器中的某处发生的。 – tomfumb