我有一个使用Zend Framework编写的CMS应用程序,它允许您翻译内容。这对于德语和法语字符来说是完美的,但是在波兰语方面苦苦挣扎,我已经正确设置了数据库和连接(据我所知),但是我仍然在为波兰语存储和返回垃圾。数据库是utf8_general_ci,字段也是。教义连接参数:
resources.entityManager.connection.charset =“ utf8”
resources.entityManager.connection.default.parameters.driverOptions.1002 =“设置名称'UTF8'”
带有翻译的数据库表单的页面具有:
header('Content-type:text / html; charset = utf-8'); (在顶部)
[meta http-equiv =“ Content-Type” content =“ text / html; charset = utf8” /](在标题标签中)
我对保存到数据库的字符串没有其他编码(原则2):
$cn->setContent($pageForm->getValue($field));
因此,法语和德语对此感到非常满意,但以下波兰语表示满意:
赞比亚w produkcjizawieszeń,szybkość
商店和视图为:
w produkcjizawieszeÅ„,szybkość
我将与这个人一起转圈,所以任何想法都将不胜感激。
最佳答案
在我的情况下,在配置中的'charset' => 'utf8'
中设置orm_default
可以解决该问题。
<?php
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => 'localhost',
'user' => 'dbuser',
'password' => 'dbpass',
'dbname' => 'dbname',
'charset' => 'utf8',
// ^^^^^^^^^^^^^^^^^^^^^
)
)
),
'driver' => array(
'zfcuser_entity' => array(
'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
'paths' => 'module/Application/src/Application/Entity',
),
'orm_default' => array(
'drivers' => array(
'Application\Entity' => 'zfcuser_entity',
),
),
),
),
'zfcuser' => array(
'user_entity_class' => 'Application\Entity\User',
'enable_default_entities' => false,
),
);
关于php - 存储波兰语字符utf8准则2 PHP,MySQL,Zend Framework,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8787683/