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

时间:2016-09-01 00:01:17

标签: json cakephp character-encoding cakephp-3.0 cakephp-3.3

在我的JSON响应中获取这样的内容:

\ u003Cp \ u003EOur Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in repreptderit in velptate velit esse cillum dolore eu fugiat nulla pariatur。\ u003C / p \ u003E \ n

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

1 个答案:

答案 0 :(得分:2)

这没有什么奇怪的,这只是内容中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);

另见