警予和UTF8显示,UTF8可与库MySQLi而不是警予后端(Yii And UTF8 Displa

2019-10-17 02:49发布

我一直努力让Yii的正确显示utf8的,即使我的两个Apache服务器和我的数据库是建立正确显示。

更具体地讲,我有一组我是从一个MySQL数据库拉动汉字/假名数据。 作为上一个简单的测试,我成立了一个视图页面从中提取数据与mysqli的,并与警予的MVC架构。 当与mysqli的拉,使其正常显示,而当有警予拉事实并非如此。 这是完全相同的页面这也意味着它从同一个确切的控制器。 我错过了与迫使模型后端使用UTF-8编码的东西吗?

图片: http://i.imgur.com/BLmrP.png

下面是我用在警予的MVC的东西视图文件的代码:

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider,
    'enablePagination' => false,
)); ?>

然后mysqli的是关于你所期待的东西。

任何帮助,将不胜感激。

Answer 1:

您必须指定字符集,使用数据库连接。 这与在主配置文件完成的(默认情况下,这是protected/config/main.php ),它看起来是这样的

return array(
    ......
    'components'=>array(
        ......
        'db'=>array(
            'connectionString'=>'sqlite:protected/data/source.db',
            'charset'=>'utf8',
        ),
    ),
    ......
);

如果charset参数没有明确设置,连接通常处理latin1,这就是为什么你看到的胡言乱语。

此外,还有一个关于正确设置Unicode的维基条目 。



文章来源: Yii And UTF8 Display, UTF8 works with mysqli but not yii backend
标签: utf-8 yii