当我在 w3.org 中验证我的网站时,我得到以下信息:
我未在文档级别声明字符编码 在文档中找不到字符编码信息,无论是在 HTML 元元素中还是在 XML 声明中。通常建议在文档本身中声明字符编码,特别是如果文档有可能从磁盘、CD 等读取或保存到磁盘、CD 等。 有关技术和说明,请参阅此有关字符编码的教程。
搜索了谷歌并尝试了他们的建议,但没有一个对我有用。
我已经在这个问题中应用了所有建议的解决方案,但无济于事。
以下是网页的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" />
我不知道我还能做些什么来修复该消息。
感谢您的建议。
对于 XML(包括 XHTML),请在文档开头的 XML 声明中使用编码伪属性,或在实体开头使用文本声明。例:
<?xml version="1.0" encoding="utf-8" ?>
从 w3 手册。还描述了一些其他技巧。
此外,html5 规范建议,编码是区分大小写的参数,必须在文档的前 1024 个字节内声明。
此外,由于对元元素的许多限制,每个文档只能有一个基于元的字符编码声明。
所以我建议以这种方式保留你的 http 标头:
<?php header('Content-Type: text/html; charset=utf-8');
并且只留下一种元声明,例如:
<meta charset="utf-8">
然后我们将看看它是否有帮助。
我也上传了您的示例,我收到的唯一错误在http-equiv
中encoding
参数不正确,仅通过删除此行即可解决。也许您的文件中嵌入了一些 iframe 或其他文档?