我有一个使用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/

10-13 21:27