2016-01-14 29 views
1

聲明中編碼時,我確認我的網站在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 

和我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" /> 

我不知道還有什麼我可以做修復該消息。

謝謝您的建議。

+1

''with * on * T * ype – yergo

+0

@yergo我已經在頭部有這個 – Ormoz

+0

https: //www.w3.org/TR/html5/syntax.html#syntax-doctype指定DOCTYPE必須是頁面上的第一個標籤,我認爲這可能是問題所在。把你的PHP放在它後面,看看是否有幫助。 –

回答

0

對於XML(包括XHTML),請在文檔開始處的XML聲明或實體開始處的文本聲明中使用編碼僞屬性。例如:

<?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或其他文件?#