Yii中输出header.content_type的设置在哪里?

Yii框架默认输出的Header中只有content_type:plain/html

没有设定字符集,而平时在html文本的header中设定charset也可以生效,但我们发现当发生错误时,用户按回车,页面就会乱码。

情况是浏览器错误的解析为gb2312的编码,在查看中切换编码为utf8就行了,而html的内容都一样,已经写了charset=utf8

看样子是必须在HTTPResponse的header中也设定一把utf8编码才行了,但Yii中在什么地方可以设置呢?

Yii中没找到地方,在nginx中添加配置也能生效:




server { #real server

        listen       80;

        server_name  .sample.com;

        charset      utf8;

        #……

}



在FireFox中用Live Http Headers查看:




HTTP/1.x 200 OK

Server: nginx/0.7.64

Date: Sun, 24 Jan 2010 11:56:42 GMT

Content-Type: text/html; charset=utf8

Transfer-Encoding: chunked

Connection: keep-alive

X-Powered-By: PHP/5.3.1

Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Content-Encoding: gzip



本来Content-Type只是text/html,这样浏览器可能会解析错误,产生乱码问题

在你index.php里或者配置文件,手写header(‘Content-type:text/html;charset=utf-8’)

赞,王道。。

以前接触的MVC框架里有HttpResponse类,里面是输出相关的设定,先入为主了。

charset=utf8应该是utf-8,写错了!!