我有一个API,它将数据发送到javascript,然后将响应抛出到某些输入字段。
我想知道是否需要在json_encode上使用htmlspecialchars?像这样:
json_encode(
array(
'some_text' => htmlspecialchars('Some special & characters'),
'maybe_html' => htmlspecialchars('some <b>html</b>'),
'etc' => htmlspecialchars('yo')
)
);
答案 0 :(得分:3)
当然不是。 HTML实体在JSON中没有任何区别或意义,如果结果由Javascript处理并通过适当的方法通过 DOM API 插入到文档中,那么也不需要转义。当数据与特定输出介质接触时,应该进行转义。这里的数据必须正确编码为JSON(json_encode
所做的),HTML无处可寻。如果有的话,HTML转义应该在Javascript中完成,因为它更接近HTML,但同样,由于Javascript与DOM API交互而不是HTML,因此它是不必要的。
请参阅The Great Escapism (Or: What You Need To Know To Work With Text Within Text)
答案 1 :(得分:1)
取决于您对字符串数据的处理方式。
重要的是内容类型的正确标头。
header('Content-type: application/json');