json_encode 个包含特殊字符和空格的字符串

json_encode strings with special characters and spaces

我需要哪个过滤器 json_encode 包含特殊字符和空格的字符串?是否有更好的方法将 json 对象与来自 twig 变量的翻译字符串传递到 Vue.js 中的模板?

我试过了;

{# renders: äeiöü #}
<p>{{'string1'|trans}}</p>
{# renders: this is a string with spaces #}
<p>{{'string2'|trans}}</p>

{% set snippets = {
 string1: 'string1'|trans,
 string2: 'string2'|trans,
 } %}

<div id="app"  snippet={{ snippets|json_encode }}>
  <demo></demo>
</div>

<script>
  let snippetJSON = document.getElementById('app').getAttribute('snippet');

  //Output: {"string1":"\u00e4ei\u00f6\u00fc","string2":"this
  console.log(snippetJSON);
</script>

您需要使用JSON.parse()解码原始值。

感谢评论中的@deceze。该属性必须用引号引起来。另外@WPhil 是对的, JSON.parse() 部分也丢失了。