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

时间:2015-02-07 07:00:40

标签: php symfony twig

我需要什么

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

           say name: Sara Fernström oksss.
    

    php code

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

refrence

输出:

    Sara Fernstru00f6m

但是o / p应该是:

    Sara Fernström oksss

3 个答案:

答案 0 :(得分:1)

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

确保字符串在传递给Twig之前是UTF-8。 确保文档是UTF-8。

然后使用

{{ data }}

输出你的字符串。

我一直与åöä一起工作(瑞典语),从不使用任何其他东西。

答案 1 :(得分:0)

您需要在正确的字符集中解码字符串:

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

数据将是你的字符串,第一个值是output-charset,第二个是input-charset,你也可以看到twig doc:http://twig.sensiolabs.org/doc/filters/convert_encoding.html

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

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

答案 2 :(得分:0)

使用字符集整理参数作为示例,检查数据在数据库中的存储方式:

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
{
  ....

希望这个帮助