php json_encode不同于js的输出JSON.stringify [复制]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php json_encode不同于js的输出JSON.stringify [复制]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我得到了两个不同的结果
json_encode([ 'name' => 'xxx❤xxx' ]);
- > {"name":"xxxu2764xxx"}
JSON.stringify({ name: 'xxx❤xxx');
- > {"name":"xxx❤xxx"}
为什么这样,我怎样才能确保js版本产生与php版本相同的结果?
答案
PHP中的转义是可选的,但在技术上并不需要有效的JSON(除了一些保留的空白字符外,它可以包含任意Unicode)。可以使用json_encode($data, JSON_UNESCAPED_UNICODE)
关闭该功能。
不幸的是,JS版本根本没有这个功能。如果你想将多字节字符转义为u....
,你应该明确地做;见JSON.stringify and unicode characters。
以上是关于php json_encode不同于js的输出JSON.stringify [复制]的主要内容,如果未能解决你的问题,请参考以下文章
php [php:escape json_encode()] #php #js
php+jsJSON用法之将PHP数组转JS数组,JS如何接收PHP数组