【发布时间】:2016-01-14 15:39:01
【问题描述】:
当我在w3.org 中验证我的网站时,我得到以下信息作为信息:
没有在文档级别声明字符编码 在 HTML 元元素或 XML 声明中未在文档中找到字符编码信息。通常建议在文档本身中声明字符编码,尤其是当文档有可能被读取或保存到磁盘、CD 等时。 有关技术和解释,请参阅此关于字符编码的教程。
我搜索了谷歌并尝试了他们的建议,但没有一个对我有用。
我已经在this question 中应用了所有建议的解决方案,但无济于事。
这里是网页的response header:
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:keep-alive, close
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Thu, 14 Jan 2016 15:25:27 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Pragma:no-cache
Server:Apache
Transfer-Encoding:chunked
Vary:Accept-Encoding
以及php 基础网站中我的HTML 文件的第一行:
<?php header('Content-type: text/html; charset=utf-8');?><!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fa" lang="fa">
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
<meta content="utf-8" http-equiv="encoding" />
<meta charset="UTF-8" />
我不知道我还能做些什么来修复该消息。
感谢您的建议。
【问题讨论】:
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">with stron Type -
@yergo 我已经想到了
-
w3.org/TR/html5/syntax.html#syntax-doctype 指定 DOCTYPE 需要是页面上的第一个标签,我认为这可能是问题所在。把你的 PHP 放在它后面,看看是否有帮助。
-
@JohnClifford 不,我不这么认为,
doctype之前的代码只是发送了一个标头,而您无法在任何输出后发送标头 -
<meta content="utf-8" http-equiv="encoding" />也应该只是<meta charset="utf-8" />
标签: php html encoding character-encoding