utf-8 - 带有 Symfony4 序列化编码的 JMSSerializer
问题描述
我的配置:Symfony 4.2.5,JMSSerialiser 3.2。我无法通过序列化获得 UTF-8 响应。我认为解决方案在配置中:
jms_serializer:
visitors:
json:
options: [JSON_UNESCAPED_UNICODE]
但它不起作用,它给了我一个 UNICODE 打印。所以,我得到了这样的回应:
`"aeiou\u00e0\u00e9\u00e8\u00f4\u00fb"`
这是我的代码:
/**
* @Route("/route1",name="route1")
*/
public function route1(){
$serializer = SerializerBuilder::create()->build();
$chaine = "aeiouàéèôû";
$reponse = new Response(
$serializer->serialize($chaine, 'json'),
Response::HTTP_OK,
['content-type' => 'text/html']
);
$reponse->setCharset('UTF-8');
return $reponse;
}
我发现当我从 firefox 启动请求时问题消失了,它为我提供了两种显示模式:json、raw 以及用于请求和响应标头的附加选项卡。Chrome 浏览器只为我提供原始显示。我是否应该断定解决方案在于 Chrome 的配置?
解决方案
主题已解决。默认情况下,Chrome 会显示文件的原始表示,其中重音字符采用转义形式。要在 Chrome 中获取 json 表单,您需要安装 jsonView 扩展。激活此扩展后,重音字符的显示将正确完成
推荐阅读
- vue.js - nuxtjs 中的 Vuex-presistedstate 错误,我使用的是 vuex-presistedstate 4.00 版和 nuxtjs 2.15.3
- python-3.x - 这个 Rnn 函数的最后一行是什么意思?
- ios - 会话更新不会随时间发生
- javascript - 在 vuejs 中使用 2 个按钮(下一个和上一个按钮)处理限制数据
- java - 没有 copyOf() 数组不会调整大小
- python - 我试图在字典中获取一个值应该是一个列表
- r - 使用 MASS 包导入和导出数据
- regex - 正则表达式匹配数字
- javascript - 验证提示条目是否是 JS 中的数字的最佳方法是什么?
- php - WordPress 模板中使用的嵌套 If else 语句不起作用