Yii采用GBK编码CGridView控件异步更新IE下乱码问题

来源:互联网 发布:剑三眼睛捏脸数据 编辑:程序博客网 时间:2024/05/27 19:26
因业务需要要将网站改为 GBK 编码,网站使用了Yii框架,以下是网站信息
Yii1.1.10数据库sql server 2000php5.2.17  

将网站编码改为 GBK 参考了 YII多语言多字符编码篇 提供的方法,设置后成功将整个网站的编码改为 GBK

步骤如下:

1、拷贝系统语言目录(yiiframework/messages/zh_cn)的zh_cn文件夹至网站语言目录(protected/messages)下,并用Dreamweaver或者记事本打开语言文件,将其另保存为编码为ANSI格式的PHP脚本。

2、配置protected/config/main.php文件

return array(      ......      'language'=>'zh_cn',  //此处根据你拷贝文件夹名自行设置       'charset'=>'gb2312',  //设置网站字符编码      'components'=>array(          'coreMessages'=>array(              'basePath'=>'protected/messages',          ),      .....  


正在欣喜的时候问题来了

在IE浏览器下 使用CGridView 控件进行异步查询时 出现乱码,而且 中文模糊查询无效!
经过了多方查询资料,终于找到了问题的根源!
Yii 在对CGridView进行异步查询时,采用的是 JQuery的AJAX异步请求,JQuery的异步请求采用 UTF-8编码 . 因为是UTF-8编码造成 中文模糊查询无效
将其中的中文 进行转码即可解决

$model->name= iconv("UTF-8","gb2312",$model->name); 

返回的数据乱码 可以通过设置  Response.ContentType编码来解决

header("Content-Type:text/html;charset=gbk");

OK!   完美解决GBK编码问题
0 0
原创粉丝点击