在 json 输出中获取奇怪的字符编码

Getting strange character encoding in json output

在我的 JSON 回复中得到这样的东西:

\u003Cp\u003EOur 疼痛本身很重要,它会伴随着减肥的过程,但它同时发生一些伟大的工作和痛苦。就最小的细节而言,任何人都不应从事任何一种工作,除非他从中得到一些好处。不要让痛苦进入房子,他会在快乐中斥责它,让他逃离痛苦。

我假设 CakePHP 3.3 在这里做了一些事情。使用标准 json 和 xml 路由扩展。在我的控制器中设置并序列化。我能想到的没有什么不寻常的。知道如何将其更改为客户端可以轻松解码的内容,或者只是一起关闭编码吗?

这没什么奇怪的,这只是内容中 HTML 标签的左尖括号和右尖括号的 unicode 标签表示。使用 JSON_HEX_TAG 选项时会应用此转换,CakePHP 默认执行此操作。

事实上,CakePHP 目前使用

JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT

默认。如果你想改变这个,使用 _jsonOptions 视图变量选项来定义你自己的位掩码,或者将它设置为 false 来禁用默认值,即在你的控制器操作中做一些像

$this->set('_jsonOptions', false);

另见