使用PHP将HTTP头设置为UTF-8

我有几个PHP页面在HTML页面中呼出各种东西,其代码如下。

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

然而,当我用W3C验证器进行验证时,却出现了。

HTTP头中指定的字符编码(iso-8859-1)与<meta> 元素中的值(utf-8)不同。

我对PHP比较陌生,我想知道我是否可以并且应该改变PHP文件的头,使之与HTML文件相匹配。

解决办法

使用header来修改HTTP标头。

header('Content-Type: text/html; charset=utf-8');

注意,在任何输出被发送到客户端之前调用此函数。否则,头信息也已经被发送出去了,你显然不能再修改它了。你可以用headers_sent检查。更多信息请参见header的手册页

评论(6)

首先要确保PHP文件本身是UTF-8编码的。

元标签会被一些浏览器忽略。如果你只使用ASCII字符,那也无所谓。

http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

header('Content-Type: text/html; charset=utf-8');
评论(0)

这是一个问题,你的网络服务器发送的HTTP头与你定义的头不一致。关于如何使服务器发送正确的头信息的说明,见本页

否则,你也可以用PHP来修改头信息,但这必须在使用此代码输出任何文本之前完成。

header('Content-Type: text/html; charset=utf-8');

关于如何使用PHP发送头信息的更多信息可以在头函数的文档中找到。

评论(0)