如何处理树枝中的特殊符号


How to handle special symbols in twig

我需要什么

  • 我需要在视图页面中显示特殊符号。

           say name: Sara Fernström oksss.
    

    php代码

          {% set  name=value.metadata.name %}
      <h3>
         {%if name|length < 40 %}
    {% set strategy = 'html' %}
     {% autoescape 'html' %}
     {{name|escape(strategy)|raw}}
    {% endautoescape %}
    

参考

  • http://twig.sensiolabs.org/doc/filters/escape.html

输出:

    Sara Fernstru00f6m

但是o/p应该是:

    Sara Fernström oksss

您的问题不在于Twig,而在于页面和字符串编码。

在将字符串传递给Twig之前,请确保该字符串为UTF-8。请确保文档为UTF-8。

然后使用

{{ data }}

以输出您的字符串。

我一直和åöä(瑞典人)一起工作,而且从来没有使用过其他任何东西。

您需要以正确的字符集对字符串进行解码:

{{ data|convert_encoding('UTF-8', 'YourCharset') }}

数据将是您的字符串,第一个值是输出字符集,第二个值是输入字符集,您还可以看到相关的twitch文档:http://twig.sensiolabs.org/doc/filters/convert_encoding.html

如果这不起作用,可以尝试解码php code中的变量:
对于您的代码,我认为应该是这样的:

value.metadata.setName(utf8_decode(value.metadata.getName());

检查如何使用字符集校勘参数将数据存储在数据库中,例如:

namespace Acme'DemoBundle'Entity;
use Doctrine'ORM'Mapping as ORM;

/**
 * @ORM'Entity(repositoryClass="MyEntityRepository")
 * @ORM'Table(name="my_entity",
 *      options={"collate"="utf8mb4_unicode_ci", "charset"="utf8mb4"})})
 */
class MyEntity
{
  ....

希望这能帮助