Yii和UTF8显示器,UTF8与mysqli配合使用但不与yii后端配合使用

时间:2012-08-04 06:09:33

标签: utf-8 yii

我一直在努力让Yii正确显示utf8,即使我的apache服务器和我的数据库都设置为正确显示它。

更具体地说,我从一个mysql数据库中提取了一组汉字/假名数据。作为一个简单的测试,我设置了一个视图页面,用mysqli和yii的mvc架构从中提取数据。当使用mysqli拉动时,它会正确显示,而当用yii拉动它时则没有。这是来自同一个页面,这也意味着它来自同一个控制器。 我错过了强迫模型后端使用utf8编码的东西吗?

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

这是我在yii的mvc内容的视图文件中使用的代码:

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

然后mysqli就是你所期待的。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

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

如果未明确设置charset参数,则连接通常为latin1,这就是您看到乱码的原因。

此外,还有wiki entry about setting up Unicode properly