我有几个PHP页面,使用以下代码将各种内容回显到HTML页面中。
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
但是,当我使用W3C validator进行验证时,它会出现:
HTTP头中指定的字符编码(iso-8859-1)与元素中的值(utf-8)不同。
我是PHP的新手,我想知道我是否可以并且应该更改PHP文件的头文件以匹配HTML文件。
发布于 2010-11-26 00:52:19
使用header
修改HTTP头:
header('Content-Type: text/html; charset=utf-8');
请注意,在将任何输出发送到客户端之前调用此函数。否则,标头也已发送,您显然不能再更改它。您可以使用headers_sent
检查这一点。有关详细信息,请参阅manual page of header
。
发布于 2010-11-26 00:53:52
首先,确保PHP文件本身是UTF-8编码的。
某些浏览器忽略了meta标签。如果你只使用ASCII字符,那也没什么关系。
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
header('Content-Type: text/html; charset=utf-8');
发布于 2010-11-26 00:54:17
这是因为您的web服务器发送的HTTP标头与您定义的HTTP标头不匹配。有关如何使服务器发送正确标头的说明,请参阅this page。
否则,您也可以使用PHP修改头文件,但这必须在使用以下代码输出任何文本之前完成:
header('Content-Type: text/html; charset=utf-8');
关于如何使用PHP发送头部的更多信息可以在the documentation for the header function中找到。
https://stackoverflow.com/questions/4279282
复制相似问题