我有一个问题,我已经花了几个小时:Symfony不能正确显示UTF-8字符串。
数据库
我的数据库有UTF-8(ssh使用UTF-8工具):
db2 "select name from client";
NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
DefaultÄÜÖäüö
简单的GUI:
使用一些转储我得到这个:
dump(mb_detect_encoding($entities[0]->getName()));
“UTF-8编码格式”
dump($entities[0]->getName());
B“违约”
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
有什么解决办法吗?
3条答案
按热度按时间a1o7rhls1#
尝试在composer.json上添加
"symfony/polyfill-iconv": "^1.3"
oxiaedzo2#
您是否将此添加到
my.cnf
或server.cnf
文件中:我猜你用的是MySQL。
也可以在
config.yml
文件中设置。请参阅文档的"Setting up the database to be UTF8"部分。dhxwm5r43#
更好的方法是将字符串存储为编码的unicode,并在访问时对其进行解码,如下所示: