国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

HTML:命名空間與字符編碼

2024-08-26 00:09:02
字體:
來源:轉載
供稿:網友

在做項目的過程中,我們經常會建立各種各樣的規范,以方便團隊之間更好的合作更好的完成項目;同樣我們也經常會聽到各種各樣的協議,比如google的im軟件gtalk使用的開放的xmpp協議,只要其他im軟件也遵循xmpp協議就能與gtalk使用互通;而互聯網上的信息無以計數,這些信息本身是獨立存在的,如何將其串聯并呈現在用戶眼前,就需要使用到http協議。

同樣的道理,因為瀏覽器們各自的內核不同,對于默認樣式的渲染也不盡相同,所以就需要一份各瀏覽器都遵循的規則來保證同一個網頁文檔在不同瀏覽器上呈現出來的樣式是一致的,這個規則就是doctype聲明。

因為互聯網是互通的,所以任意的兩個或者以上的網頁文檔都可能會涉及到數據交換,而因為xml語言是允許用戶自定義標簽的,所以任意兩個交換的文檔就可能會出現相同的標簽,從而導致相同標簽的沖突,所以就需要一個命名空間以區分開交換文檔中可能存在的相同標簽。

xhtml做為html向xml過渡的一種語言,并不能實現xml語言中的用戶自定義標簽,所以xhmtl文檔中的命名空間都是相同的:

<html xmlns=”http://www.w3.org/1999/xhtml”>

xmlns即是xhtml namespace的縮寫,也就是所謂的“命名空間”。與doctype聲明一樣,xmlns也屬于一種聲明。與html文檔中仍然存在doctype聲明不一樣的是,在html文檔是不存在xmlns的,我們平常所見到的xmlns都是出現在xhtml文檔中的。

在制作一個網頁的時候,除了在開始的時候聲明doctype(文檔類型)之外,如果是xhtml文檔還需要聲明命名空間,而第三個需要聲明的就是網頁文檔的字符編碼類型:

<meta http-equiv=”content-type” content=”text/html; charset=utf-8′ />

為了能被瀏覽器正確的解釋以及通過w3c驗證,每個xhtml文檔都應該聲明所使用的字符編碼。很多時候網頁文檔出現亂碼大部分都是由于字符編碼不對而引起的。

utf-8是unicode的一種變長度的編碼表達方式,做為一種全球通用型的字符編碼正越來越多的網頁文檔所使用,使用utf-8字符編碼的網頁可最大程度的避免不同區域的用戶訪問相同網頁時因字符編碼不同而導致的亂碼現象。

但是當我們打開國內的大多數網站看,特別是門戶型的大型網站,關于字符編碼的聲明卻并非是utf-8,而是gb2312:

<meta http-equiv=”content-type” content=”text/html; charset=gb2312′ />

當然,除了gb2312外還有一些網站使用gbk或者是gb18030編碼,這三種字符編碼都是屬于簡體中文字符集。也就是說,如果一臺電腦沒有安裝簡體中文字符集時,當它訪問字符編碼為gb2312的中文網頁時,則顯示出來的是亂碼。

既然使用gb2312字符編碼時會因為不同區域的用戶訪問而可能出現亂碼現象,那為何不使用utf-8呢?

其中一個原因可能歷史遺留的原因,而另一個更重要的原因應該是由于兩種編碼的存儲方式不同而造成的文檔體積不同。

使用gb2312字符編碼集時,一個漢字是占用2個字節的大小,而一個漢字在utf-8編碼中所占的字節數卻往往都是在3個字節,甚至是3個以上的字節。所以對于同一個中文文檔來說,使用gb2312字符編碼來進行存儲的體積是要小于utf-8編碼所存儲的文檔大小的。

而對于文字多訪問量大的中文網站來說,使用gb2312編碼的網頁文檔在下載傳輸上可以節省下不小的流量,再者是因為中文網站的用戶群體基本上都鎖定在中文用戶上,這些也就是很多網站使用gb2312編碼而不是utf-8編碼的原因。

但是文字多訪問量大的網站,國內并不多,再加上可能成對的亂碼問題,所以在制作網頁的時候推薦使用utf-8編碼。

當然,不管用何種編碼,最重要的是整站使用的編碼要統一。

對于字符編碼的聲明除了上面的方式,還可能看到另一種聲明方式:

<meta http-equiv=”content-language” content=”gb2312′ />

<meta http-equiv=”content-language” content=”zh-cn” />

這種聲明方式是針對老版本的瀏覽器的,在瀏覽器已經普遍更新換代的今天已經不推薦使用這種聲明方式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙阴县| 榆中县| 大渡口区| 区。| 白沙| 嘉定区| 嘉兴市| 岫岩| 札达县| 福清市| 青岛市| 化州市| 汉寿县| 宁乡县| 商丘市| 临邑县| 兰溪市| 长子县| 新源县| 邵阳县| 东乌珠穆沁旗| 台江县| 五大连池市| 满城县| 长兴县| 扎兰屯市| 沐川县| 和政县| 彰武县| 西乌珠穆沁旗| 德州市| 二连浩特市| 新丰县| 遂溪县| 陵川县| 开鲁县| 永泰县| 南安市| 大石桥市| 饶河县| 杨浦区|