gbk utf8如何選擇 正確理解和使用GBK及UTF-8網(wǎng)頁(yè)編碼
發(fā)布時(shí)間:2012-12-11 16:10:46 作者:佚名
我要評(píng)論

網(wǎng)頁(yè)編碼英文譯為web page encoding,是在網(wǎng)頁(yè)中指定其特定的字符編碼格式的庫(kù),本文將講述GBK及UTF-8網(wǎng)頁(yè)編碼定義與應(yīng)用
網(wǎng)頁(yè)編碼英文譯為web page encoding,是在網(wǎng)頁(yè)中指定其特定的字符編碼格式的庫(kù)。
GBK是國(guó)家標(biāo)準(zhǔn)GB2312基礎(chǔ)上擴(kuò)容后兼容GB2312的標(biāo)準(zhǔn)。GBK的文字編碼是用雙字節(jié)來(lái)表示的,即不論中、英文字符均使用雙字節(jié)來(lái)表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國(guó)家編碼,通用性比UTF8差,不過(guò)UTF8占用的數(shù)據(jù)庫(kù)比GBK大。
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國(guó)際上字符的一種多字節(jié)編碼,它對(duì)英文使用8位(即一個(gè)字節(jié)),中文使用24為(三個(gè)字節(jié))來(lái)編碼。UTF-8包含全世界所有國(guó)家需要用到的字符,是國(guó)際編碼,通用性強(qiáng)。UTF-8編碼的文字可以在各國(guó)支持UTF8字符集的瀏覽器上顯示。如果是UTF8編碼,則在外國(guó)人的英文IE上也能顯示中文,他們無(wú)需下載IE的中文語(yǔ)言支持包。
UTF-8版本雖然具有良好的國(guó)際兼容性,但中文需要比GBK/BIG5版本多占用50%的數(shù)據(jù)庫(kù)存儲(chǔ)空間,因此并非推薦使用,僅供對(duì)國(guó)際兼容性有特殊要求的用戶使用。簡(jiǎn)單地說(shuō):對(duì)于中文較多的網(wǎng)站,適宜用GBK編碼節(jié)省數(shù)據(jù)庫(kù)空間。對(duì)于英文較多的網(wǎng)站,適宜用UTF-8節(jié)省數(shù)據(jù)庫(kù)空間。
GBK、GB2312等與UTF8如何轉(zhuǎn)換?GBK、GB2312等與UTF8之間都必須通過(guò)Unicode編碼才能相互轉(zhuǎn)換:GBK、GB2312——Unicode——UTF8;UTF8——Unicode——GBK、GB2312。使用Windows記事本的“另存為”,可以在GBK、Unicode、Unicode big endian和UTF-8這幾種編碼方式間相互轉(zhuǎn)換。
如何讓瀏覽器正確識(shí)別網(wǎng)頁(yè)編碼?一般在網(wǎng)頁(yè)中都要有如下一句:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,指示此網(wǎng)頁(yè)的字符集編碼是GB2312。(或者UTF-8)
頁(yè)面有時(shí)候指定了編碼為什么有時(shí)會(huì)出現(xiàn)亂碼?這可能是頁(yè)面申明編碼與文件本身編碼不一致,更多時(shí)候是以錯(cuò)誤編碼打開(kāi)頁(yè)面然后保存導(dǎo)致的,或者是用某些FTP軟件直接在線修改文件,比如CuteFTP,由于軟件編碼配置錯(cuò)誤而導(dǎo)致轉(zhuǎn)換錯(cuò)了編碼。這時(shí)候使用window的記事本打開(kāi),用“另存為”保存為對(duì)應(yīng)的編碼即可解決問(wèn)題。
在windows操作系統(tǒng)上使用IE作為瀏覽器時(shí),常常會(huì)發(fā)生這樣的問(wèn)題:在瀏覽使用UTF-8編碼的網(wǎng)頁(yè)時(shí),瀏覽器無(wú)法自動(dòng)識(shí)別該頁(yè)面所用的編碼,即使網(wǎng)頁(yè)已經(jīng)聲明過(guò)編碼格式:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />,由此造成某些含有中文UTF-8編碼的頁(yè)面產(chǎn)生空白輸出。如果使用的是Firefox、Sarafi的瀏覽器這不會(huì)造成這個(gè)問(wèn)題。這是由于IE解析網(wǎng)頁(yè)編碼時(shí)以HTML內(nèi)的標(biāo)簽優(yōu)先,而后才是HTTP header內(nèi)的訊息,而mozilla系列的瀏覽器則剛剛相反。
由于UTF-8為3個(gè)字節(jié)表示一個(gè)漢子,而普通的GB2312或BIG5是兩個(gè)。頁(yè)面輸出時(shí),由于上述原因,使瀏覽器解析、輸出<title></title>的內(nèi)容時(shí),如果在</title>前有奇數(shù)個(gè)全角字符,IE把UTF-8當(dāng)作兩個(gè)字節(jié)解析時(shí)出現(xiàn)半個(gè)漢字的情況,這時(shí)該半個(gè)漢字會(huì)和</title>的<結(jié)合成一個(gè)亂碼字,導(dǎo)致IE無(wú)法讀完<title>部分,使整個(gè)頁(yè)面為空百輸出,而這個(gè)時(shí)候如果察看源文件的話,會(huì)發(fā)現(xiàn)實(shí)際上整個(gè)頁(yè)面全部已經(jīng)輸出了,但瀏覽器不顯示內(nèi)容。最簡(jiǎn)單的解決辦法是把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 放在<title></title>之前。
GBK是國(guó)家標(biāo)準(zhǔn)GB2312基礎(chǔ)上擴(kuò)容后兼容GB2312的標(biāo)準(zhǔn)。GBK的文字編碼是用雙字節(jié)來(lái)表示的,即不論中、英文字符均使用雙字節(jié)來(lái)表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國(guó)家編碼,通用性比UTF8差,不過(guò)UTF8占用的數(shù)據(jù)庫(kù)比GBK大。
UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國(guó)際上字符的一種多字節(jié)編碼,它對(duì)英文使用8位(即一個(gè)字節(jié)),中文使用24為(三個(gè)字節(jié))來(lái)編碼。UTF-8包含全世界所有國(guó)家需要用到的字符,是國(guó)際編碼,通用性強(qiáng)。UTF-8編碼的文字可以在各國(guó)支持UTF8字符集的瀏覽器上顯示。如果是UTF8編碼,則在外國(guó)人的英文IE上也能顯示中文,他們無(wú)需下載IE的中文語(yǔ)言支持包。
UTF-8版本雖然具有良好的國(guó)際兼容性,但中文需要比GBK/BIG5版本多占用50%的數(shù)據(jù)庫(kù)存儲(chǔ)空間,因此并非推薦使用,僅供對(duì)國(guó)際兼容性有特殊要求的用戶使用。簡(jiǎn)單地說(shuō):對(duì)于中文較多的網(wǎng)站,適宜用GBK編碼節(jié)省數(shù)據(jù)庫(kù)空間。對(duì)于英文較多的網(wǎng)站,適宜用UTF-8節(jié)省數(shù)據(jù)庫(kù)空間。
GBK、GB2312等與UTF8如何轉(zhuǎn)換?GBK、GB2312等與UTF8之間都必須通過(guò)Unicode編碼才能相互轉(zhuǎn)換:GBK、GB2312——Unicode——UTF8;UTF8——Unicode——GBK、GB2312。使用Windows記事本的“另存為”,可以在GBK、Unicode、Unicode big endian和UTF-8這幾種編碼方式間相互轉(zhuǎn)換。
如何讓瀏覽器正確識(shí)別網(wǎng)頁(yè)編碼?一般在網(wǎng)頁(yè)中都要有如下一句:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,指示此網(wǎng)頁(yè)的字符集編碼是GB2312。(或者UTF-8)
頁(yè)面有時(shí)候指定了編碼為什么有時(shí)會(huì)出現(xiàn)亂碼?這可能是頁(yè)面申明編碼與文件本身編碼不一致,更多時(shí)候是以錯(cuò)誤編碼打開(kāi)頁(yè)面然后保存導(dǎo)致的,或者是用某些FTP軟件直接在線修改文件,比如CuteFTP,由于軟件編碼配置錯(cuò)誤而導(dǎo)致轉(zhuǎn)換錯(cuò)了編碼。這時(shí)候使用window的記事本打開(kāi),用“另存為”保存為對(duì)應(yīng)的編碼即可解決問(wèn)題。
在windows操作系統(tǒng)上使用IE作為瀏覽器時(shí),常常會(huì)發(fā)生這樣的問(wèn)題:在瀏覽使用UTF-8編碼的網(wǎng)頁(yè)時(shí),瀏覽器無(wú)法自動(dòng)識(shí)別該頁(yè)面所用的編碼,即使網(wǎng)頁(yè)已經(jīng)聲明過(guò)編碼格式:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />,由此造成某些含有中文UTF-8編碼的頁(yè)面產(chǎn)生空白輸出。如果使用的是Firefox、Sarafi的瀏覽器這不會(huì)造成這個(gè)問(wèn)題。這是由于IE解析網(wǎng)頁(yè)編碼時(shí)以HTML內(nèi)的標(biāo)簽優(yōu)先,而后才是HTTP header內(nèi)的訊息,而mozilla系列的瀏覽器則剛剛相反。
由于UTF-8為3個(gè)字節(jié)表示一個(gè)漢子,而普通的GB2312或BIG5是兩個(gè)。頁(yè)面輸出時(shí),由于上述原因,使瀏覽器解析、輸出<title></title>的內(nèi)容時(shí),如果在</title>前有奇數(shù)個(gè)全角字符,IE把UTF-8當(dāng)作兩個(gè)字節(jié)解析時(shí)出現(xiàn)半個(gè)漢字的情況,這時(shí)該半個(gè)漢字會(huì)和</title>的<結(jié)合成一個(gè)亂碼字,導(dǎo)致IE無(wú)法讀完<title>部分,使整個(gè)頁(yè)面為空百輸出,而這個(gè)時(shí)候如果察看源文件的話,會(huì)發(fā)現(xiàn)實(shí)際上整個(gè)頁(yè)面全部已經(jīng)輸出了,但瀏覽器不顯示內(nèi)容。最簡(jiǎn)單的解決辦法是把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 放在<title></title>之前。
相關(guān)文章
- HTML表格用于在網(wǎng)頁(yè)上展示數(shù)據(jù),通過(guò)標(biāo)簽及其相關(guān)標(biāo)簽來(lái)創(chuàng)建,表格由行和列組成,每一行包含一個(gè)或多個(gè)單元格,單元格可以包含文本、圖像、鏈接等元素,本文將詳細(xì)介紹HTML表格2025-03-12
- 本文介紹了三種禁止HTML頁(yè)面滾動(dòng)的方法:通過(guò)CSS的overflow屬性、使用JavaScript的滾動(dòng)事件監(jiān)聽(tīng)器以及使用CSS的position:fixed屬性,每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),感興2025-02-24
使用HTML和CSS實(shí)現(xiàn)文字鏤空效果的代碼示例
在 Web 開(kāi)發(fā)中,文本的視覺(jué)效果是提升用戶體驗(yàn)的重要因素之一,通過(guò) CSS 技巧,我們可以創(chuàng)造出許多獨(dú)特的效果,例如文字鏤空效果,本文將帶你一步一步實(shí)現(xiàn)一個(gè)簡(jiǎn)單的文字鏤空2024-11-17Html去除a標(biāo)簽的默認(rèn)樣式的操作代碼
在Html中,a標(biāo)簽?zāi)J(rèn)的超鏈接樣式是藍(lán)色字體配下劃線,這可能不滿足所有設(shè)計(jì)需求,如需去除這些默認(rèn)樣式,可以通過(guò)CSS來(lái)實(shí)現(xiàn),本文給大家介紹Html去除a標(biāo)簽的默認(rèn)樣式的操作代碼2024-09-25HTML文本域如何設(shè)置為禁止用戶手動(dòng)拖動(dòng)
在HTML中,可以通過(guò)設(shè)置CSS的resize屬性為none,來(lái)禁止用戶手動(dòng)拖動(dòng)文本域(textarea)的大小,這種方法簡(jiǎn)單有效,適用于大多數(shù)現(xiàn)代瀏覽器,但需要在老舊瀏覽器中進(jìn)行測(cè)試以確保2024-09-25如何通過(guò)HTML/CSS 實(shí)現(xiàn)各類進(jìn)度條的功能
本文詳細(xì)介紹了如何利用HTML和CSS實(shí)現(xiàn)多種風(fēng)格的進(jìn)度條,包括基礎(chǔ)的水平進(jìn)度條、環(huán)形進(jìn)度條以及球形進(jìn)度條等,還探討了如何通過(guò)動(dòng)畫增強(qiáng)視覺(jué)效果,內(nèi)容涵蓋了使用HTML原生標(biāo)簽2024-09-19HTML中Canvas關(guān)鍵知識(shí)點(diǎn)總結(jié)
Canvas 提供了一套強(qiáng)大的 2D 繪圖 API,適用于各種圖形繪制、圖像處理和動(dòng)畫制作,可以幫助你創(chuàng)建復(fù)雜且高效的網(wǎng)頁(yè)圖形應(yīng)用,這篇文章主要介紹了HTML中Canvas關(guān)鍵知識(shí)點(diǎn)總結(jié)2024-06-03html table+css實(shí)現(xiàn)可編輯表格的示例代碼
本文主要介紹了html table+css實(shí)現(xiàn)可編輯表格的示例代碼,主要使用HTML5的contenteditable屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)2024-03-06HTML中使用Flex布局實(shí)現(xiàn)雙行夾批效果
本文主要介紹了HTML中使用Flex布局實(shí)現(xiàn)雙行夾批效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)2024-02-22HTML+CSS實(shí)現(xiàn)炫酷登錄切換的項(xiàng)目實(shí)踐
在網(wǎng)站開(kāi)發(fā)中,登錄頁(yè)面是必不可少的一部分,本文就來(lái)介紹一下HTML+CSS實(shí)現(xiàn)登錄切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需2024-02-02