1

Apacheサーバーとデータベースの両方がutf8を正しく表示するように設定されていても、Yiiでutf8を正しく表示するのに苦労しています。

具体的には、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 に答える