当我在w3.org验证我的网站时,我得到以下 info :
在文档级别声明没有字符编码 在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
以及HTML
基础网站中php
文件的第一行:
<?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" />
我不知道还能做些什么来解决这个问题。
感谢您的建议。
答案 0 :(得分:0)
对于XML(包括XHTML),请在文档开头的XML声明中使用encoding伪属性,或在实体开头使用文本声明。例如:
<?xml version="1.0" encoding="utf-8" ?>
来自w3 manual。还有其他一些技巧。
此外,html5 specs表明,编码是区分大小写的参数,必须使用文档的前1024个字节进行声明。
此外,由于元元素的许多限制,每个文档只能有一个基于元的字符编码声明。
所以我建议以这种方式保留你的http标题:
<?php header('Content-Type: text/html; charset=utf-8');
并且只留下一种元声明,例如:
<meta charset="utf-8">
我们会看到它是否有帮助。
此外,我已经上传了您的示例,我收到的错误只有encoding
中包含错误http-equiv
参数的错误,只需删除此行即可解决问题。也许您的文件中嵌入了一些iframe或其他文档?