如何使用PHP将HTTP标头设置为UTF-8,这在W3C验证器中是有效的

2022-08-30 06:00:14

我有几个PHP页面,用下面的代码将各种东西回显到HTML页面中。

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

但是,当我使用W3C验证器进行验证时,它会得出:

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

我对PHP很陌生,我想知道我是否可以并且应该更改PHP文件的标头以匹配HTML文件。


答案 1

使用标头修改 HTTP 标头:

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

请注意,在将任何输出发送到客户端之前调用此函数。否则,标头也已发送,您显然无法再更改它。你可以用headers_sent来检查。有关详细信息,请参阅页眉的手册页


答案 2

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

元标记被某些浏览器忽略。如果您只使用 ASCII 字符,则无关紧要。

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

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

推荐