【问题标题】:Symfony UTF-8 Characters not correct displayedSymfony UTF-8 字符显示不正确
【发布时间】:2017-02-28 15:01:33
【问题描述】:

我已经花了几个小时有一个问题:Symfony 无法正确显示 UTF-8 字符串。

数据库

我的数据库有 UTF-8(使用 UFT-8 工具的 ssh):

db2 "select name from client";

NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
DefaultÄÜÖäüö

简单的图形用户界面:

使用一些转储我得到这个:

dump(mb_detect_encoding($entities[0]->getName()));

“UTF-8”

dump($entities[0]->getName());

b"DefaultÄÜÖäüö"

b 很奇怪……

在树枝中:

默认����

当我使用时

ISO: {{ entity.name| convert_encoding('UTF-8', 'ISO-8859-1')

默认ÄÜÖäüö

元标记已设置

<meta charset="UTF-8" />

我已经尝试在 AppKernel.php 中更改它(代码设置或注释掉真的没关系)

   public function getCharset()
    {
        return 'UTF-8';
    }

同样在数据库的 config.yml 中(如果设置代码或注释掉真的没关系):

doctrine:
    dbal:
        charset:  UTF8

有什么办法解决这个问题吗?

【问题讨论】:

  • 您的所有文件都保存为UTF-8吗?

标签: php symfony utf-8 doctrine twig


【解决方案1】:

尝试在您的 composer.json 中添加 "symfony/polyfill-iconv": "^1.3"

【讨论】:

    【解决方案2】:

    您是否将此添加到您的 my.cnfserver.cnf 文件中:

    [mysqld]
    # Version 5.5.3 introduced "utf8mb4", which is recommended
    collation-server     = utf8mb4_general_ci # Replaces utf8_general_ci
    character-set-server = utf8mb4            # Replaces utf8
    

    我假设您使用的是 MySQL。

    您也可以在config.yml 文件中设置。请参阅文档的 "Setting up the database to be UTF8" 部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2020-04-22
      • 2023-04-02
      • 2016-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多