1

我一直在努力让 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 就是你所期望的。

任何帮助,将不胜感激。

4

1 回答 1

2

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

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

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

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

于 2012-08-04T12:34:16.423 回答