Javascript php json_编码的输出与js json.stringify不同

Javascript php json_编码的输出与js json.stringify不同,javascript,php,json,Javascript,Php,Json,我得到了两个不同的结果 json_encode([ 'name' => 'xxx❤xxx' ]); -->{“名称”:“xxx\u2764xxx”} -->{“name”:“xxx”❤xxx“} 这是为什么?我如何确保js版本产生与php版本相同的结果?php中的转义是可选的,但在技术上对有效的JSON(除了一些保留的空白字符外,还可以包含任意Unicode)不是必需的。可以使用json\u encode($data,json\u UNESCAPED\u UNICODE)关闭该功能 不幸

我得到了两个不同的结果

json_encode([ 'name' => 'xxx❤xxx' ]);
-->
{“名称”:“xxx\u2764xxx”}

-->
{“name”:“xxx”❤xxx“}


这是为什么?我如何确保js版本产生与php版本相同的结果?

php中的转义是可选的,但在技术上对有效的JSON(除了一些保留的空白字符外,还可以包含任意Unicode)不是必需的。可以使用
json\u encode($data,json\u UNESCAPED\u UNICODE)
关闭该功能


不幸的是,JS版本根本没有这个功能。如果要将多字节字符转义为
\u…
,则应显式转义;请参阅。

它们是一样的:只是出于某种原因,一个显示渲染的表情符号,另一个显示代码点。这取决于您在什么环境中查看结果。抱歉,如果您已经意识到了这一点,但两个输出块包含完全相同的信息是毫无意义的,只是PHP代码被配置为生成纯US-ASCII输出,而不是UTF-8。
JSON.stringify({ name: 'xxx❤xxx');