淺談html中的meta及亂碼問題

今天有個小朋友問我一個關於html頁面顯示亂碼的問題,特總結並分享。

他的代碼是這樣的

<HTML>
<TITLE>
 例 7-1 jspSmartUpload 基本文件上傳
</TITLE>
<BODY BGCOLOR="white">
<HR>
<FORM METHOD="POST" ACTION="/xiazai/jdupload.jsp" ENCTYPE="multipart/form-data">
   <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
   <BR>
   <INPUT TYPE="SUBMIT" VALUE="上傳">
</FORM>

</BODY>
</HTML>

顯示效果如圖


解決辦法,在html頁面中增加一個meta,如下:

<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<TITLE>
 例 7-1 jspSmartUpload 基本文件上傳
</TITLE>
<BODY BGCOLOR="white">
<HR>
<FORM METHOD="POST" ACTION="/xiazai/jdupload.jsp" ENCTYPE="multipart/form-data">
   <INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>
   <INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>
   <BR>
   <INPUT TYPE="SUBMIT" VALUE="上傳">
</FORM>

</BODY>
</HTML>
效果如圖所示



這裏主要講下大家容易忽略的html的meta標籤。

定義和用法

<meta> 元素可提供有關頁面的元信息(meta-information),比如針對搜索引擎和更新頻度的描述和關鍵詞。

<meta> 標籤位於文檔的頭部,不包含任何內容。<meta> 標籤的屬性定義了與文檔相關聯的名稱/值對。


提示和註釋:

註釋:<meta> 標籤永遠位於 head 元素內部。

註釋:元數據總是以名稱/值的形式被成對傳遞的。


meta標籤主要有3個元素:name+content+http-equiv

name 屬性

name 屬性提供了名稱/值對中的名稱。HTML 和 XHTML 標籤都沒有指定任何預先定義的 <meta> 名稱。通常情況下,您可以自由使用對自己和源文檔的讀者來說富有意義的名稱。

"keywords" 是一個經常被用到的名稱。它爲文檔定義了一組關鍵字。某些搜索引擎在遇到這些關鍵字時,會用這些關鍵字對文檔進行分類。

類似這樣的 meta 標籤可能對於進入搜索引擎的索引有幫助:

<meta name="keywords" content="HTML,ASP,PHP,SQL">

如果沒有提供 name 屬性,那麼名稱/值對中的名稱會採用 http-equiv 屬性的值。

http-equiv 屬性

http-equiv 屬性爲名稱/值對提供了名稱。並指示服務器在發送實際的文檔之前先在要傳送給瀏覽器的 MIME 文檔頭部包含名稱/值對。

當服務器向瀏覽器發送文檔時,會先發送許多名稱/值對。雖然有些服務器會發送許多這種名稱/值對,但是所有服務器都至少要發送一個:content-type:text/html。這將告訴瀏覽器準備接受一個 HTML 文檔。

使用帶有 http-equiv 屬性的 <meta> 標籤時,服務器將把名稱/值對添加到發送給瀏覽器的內容頭部。例如,添加:

<meta http-equiv="charset" content="iso-8859-1">
<meta http-equiv="expires" content="31 Dec 2008">

這樣發送到瀏覽器的頭部就應該包含:

content-type: text/html
charset:iso-8859-1
expires:31 Dec 2008

當然,只有瀏覽器可以接受這些附加的頭部字段,並能以適當的方式使用它們時,這些字段纔有意義。

content 屬性

content 屬性提供了名稱/值對中的值。該值可以是任何有效的字符串。

content 屬性始終要和 name 屬性或 http-equiv 屬性一起使用。

其中,content是必須有的,你可以選擇name屬性或者http-equiv屬性。

name屬性主要用來作爲你自定義的內容;而http-equiv則是表示服務器將把名稱/值對添加到發送給瀏覽器的內容頭部。

下面有幾個例子,是W3School中的,大家可以深入參考一下。

http://www.w3school.com.cn/tiy/t.asp?f=html_meta

http://www.w3school.com.cn/tiy/t.asp?f=html_keywords

http://www.w3school.com.cn/tiy/t.asp?f=html_redirect

發佈了39 篇原創文章 · 獲贊 3 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章