問題描述
我有一個文件,我遇到了一個非常奇怪的錯誤.錯誤是:
I have a file that I am getting a very weird error on. The error is:
The character encoding of the HTML document was not declared.
The document will render with garbled text in some browser configurations if
the document contains characters from outside the US-ASCII range.
The character encoding of the page must to be declared in the document or
in the transfer protocol.
它來自的文件是(indexmws.php):
the file this comes from is (indexmws.php):
session_start();
if(!isset($_SESSION['validUser']) || $_SESSION['validUser'] !== true){
header('Location: loginmws.php');
}
include_once('db.php');
include_once('amazonmws.php');
include_once('decidemws.php');
include_once('author.php');
include_once('amazonPricingMWS.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Decision Maker</title>
這是一個不會拋出錯誤的文件 (index.php) 的完全副本,除了添加 amazonPricingMWS.php 并重定向到標題中帶有 mws.php 的頁面:
This is an exact duplicate of a file that does not throw the error (index.php)with the exception of adding amazonPricingMWS.php and redirecting to pages with mws.php in the title:
session_start();
if(!isset($_SESSION['validUser']) || $_SESSION['validUser'] !== true){
header('Location: login.php');
}
include_once('db.php');
include_once('amazon.php');
include_once('decide.php');
include_once('author.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Decision Maker</title>
誰能向我解釋為什么我在 indexmws.php 中收到此錯誤?
can anyone explain to me why I am getting this error in indexmws.php?
推薦答案
出現錯誤是因為瀏覽器需要文件的前 1024 個字節的編碼格式.可能是第一種情況下包含文件輸出了一些內容.
The error is coming because the browsers expect the encoding format in the first 1024 bytes of the file. It may be the case that there is some content being outputted by the included files in the first case.
瀏覽器現在緩沖文件的前 1024 個字節以檢查字符編碼.如果在前 1024 個字節中未遇到編碼描述,則顯示此警告.
The browsers now buffer the first 1024 bytes of the file to check for the character encoding. If the encoding description is not encountered in the first 1024 bytes, this warning is displayed.
在您的情況下,您可以使用 php 標頭在包含其他文件之前指定內容類型:
In your case, you can use a php header for specifying the content type before the other files are included:
header('Content-type: text/html; charset=utf-8');
欲了解更多信息,請閱讀:http://gtmetrix.com/specify-a-character-set-early.html
For more information, read this: http://gtmetrix.com/specify-a-character-set-early.html
這篇關于未在 html 文檔中聲明的字符編碼的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!