91视频国产免费-一区二区三区不卡av-国自产拍偷拍精品啪啪av-免费在线视频一区二区-中日黄色片-免费污片在线观看-偷拍青青草-日本黄色高清-国产视频手机在线播放-国产激情在线-午夜tv影院-日本中文字幕网-男女黄色录像-日日夜夜草-九色91蝌蚪-太粗太深了太紧太爽了动态图-97久久精品

當前位置: 博客首頁 >> 網(wǎng)頁設(shè)計制作 >> 網(wǎng)頁設(shè)計gbk編碼與utf-8編碼、Unicode編碼的區(qū)別詳解--網(wǎng)站建設(shè)知識 rss

網(wǎng)頁設(shè)計gbk編碼與utf-8編碼、Unicode編碼的區(qū)別詳解--網(wǎng)站建設(shè)知識

成都網(wǎng)站優(yōu)化 在 2013-02-26 發(fā)表,評論(0),閱讀(0)

UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字符的一種多字節(jié)編碼,它對英文使用8位(即一個字節(jié)),中文使用24為(三個字節(jié))來編碼。UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強。UTF-8編碼的文字可以在各國支持UTF8字符集的瀏覽器上顯示。如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載IE的中文語言支持包。

GBK是國家標準GB2312基礎(chǔ)上擴容后兼容GB2312的標準。GBK的文字編碼是用雙字節(jié)來表示的,即不論中、英文字符均使用雙字節(jié)來表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國家編碼,通用性比UTF8差,不過UTF8占用的數(shù)據(jù)庫比GBD大。

GBK、GB2312等與UTF8之間都必須通過Unicode編碼才能相互轉(zhuǎn)換:

GBK、GB2312--Unicode--UTF8

UTF8--Unicode--GBK、GB2312

簡單地說:
對于中文較多的論壇,適宜用GBK編碼節(jié)省數(shù)據(jù)庫空間。對于英文較多的論壇,適宜用UTF-8節(jié)省數(shù)據(jù)庫空間。

GBK簡體中文版和UTF8簡體中文版有什么區(qū)別?
ASCII(ISO-8859-1)是鼻祖,最簡單的方式,字節(jié)高位為0
GB2312、GBK、GB18030,這幾個是中文編碼方式,并向下兼容。GB2312包含7000多個漢字和字符,GBK包含21000多個,GB18030更厲害,到了27000多個。他們都是用2個字節(jié)來表示一個漢字。跟ascii是怎么區(qū)分的呢?如果高字節(jié)的高位為1(也就是高字節(jié)大于127),就表示是漢字,低字節(jié)并無明顯特征。

Unicode是統(tǒng)一編碼,它建立了一個全世界統(tǒng)一的碼表。世界上的所有文字,在這張碼表中都是唯一的。

UTF-8是Unicode的一種存儲、傳輸方式。它將整個Unicode碼表分為3部分。
0000 - 007F 這部分是最初的ascii部分,按原始的存儲方式,即0xxxxxxx。
0080 - 07FF 這部分存儲為110xxxxx 10xxxxxx
0800 - FFFF 這部分存儲為1110xxxx 10xxxxxx 10xxxxxx
因此,一個漢字究竟被存儲為什么,就需要:先查unicode碼表,然后根據(jù)在碼表的位置進行計算。例如:“電”字,在碼表中是3575,計算成utf8就是E794B5,而在GB2312的碼表中為B5E7
UTF-8的好處:兼容ASCII,存儲英文文件都是單字節(jié),文件小。當然,當以存中文為主時就變成了3字節(jié)編碼了,比GB系列還大!如何標明一個文件是utf8格式呢?這個標記是可選的:EF BB BF。比如,用windows自帶的記事本創(chuàng)建一個utf8格式的文件,就會加上這個標記。但是,如果用ultraedit創(chuàng)建utf8文件,并不會加上這個標記。這個標記有個術(shù)語,叫做BOM(Byte Order Mark)。不帶BOM的utf8文件和GB2312文件怎么區(qū)分呢?我也不知道。唯一能想到的辦法就是:先用一種試,如果出現(xiàn)亂碼,就用另一種再試

UTF-16是雙字節(jié)存儲,這就帶來一個問題,即高低字節(jié)的順序。兩個字節(jié)有兩種順序,它們也用BOM來標明。分為大尾碼和小尾碼兩種。大尾碼的BOM是FEFF,小尾碼的BOM是FFFE


所以我覺得還是GBK好些,如果你是中文站的話

但是還要說一下的是,UTF-8是未來的趨勢。

UNICODE,GBK,UTF-8區(qū)別
簡單來說,unicode,gbk和大五碼就是編碼的值,而utf-8,uft-16之類就是這個值的表現(xiàn)形式.而前面那三種編碼是一兼容的,同一個漢字,那三個碼值是完全不一樣的.如"漢"的uncode值與gbk就是不一樣的,假設(shè)uncode為a040,gbk為b030,而uft-8碼,就是把那個值表現(xiàn)的形式.utf-8碼完全只針對uncode來組織的,如果GBK要轉(zhuǎn)UTF-8必須先轉(zhuǎn)uncode碼,再轉(zhuǎn)utf-8就OK了.
詳細的就見下面轉(zhuǎn)的這篇文章.

談?wù)刄nicode編碼,簡要解釋UCS、UTF、BMP、BOM等名詞
這是一篇程序員寫給程序員的趣味讀物。所謂趣味是指可以比較輕松地了解一些原來不清楚的概念,增進知識,類似于打RPG游戲的升級。整理這篇文章的動機是兩個問題:

問題一:
使用Windows記事本的“另存為”,可以在GBK、Unicode、Unicode big endian和UTF-8這幾種編碼方式間相互轉(zhuǎn)換。同樣是txt文件,Windows是怎樣識別編碼方式的呢?

我很早前就發(fā)現(xiàn)Unicode、Unicode big endian和UTF-8編碼的txt文件的開頭會多出幾個字節(jié),分別是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但這些標記是基于什么標準呢?

問題二:
最近在網(wǎng)上看到一個ConvertUTF.c,實現(xiàn)了UTF-32、UTF-16和UTF-8這三種編碼方式的相互轉(zhuǎn)換。對于Unicode(UCS2)、GBK、UTF-8這些編碼方式,我原來就了解。但這個程序讓我有些糊涂,想不起來UTF-16和UCS2有什么關(guān)系。
查了查相關(guān)資料,總算將這些問題弄清楚了,順帶也了解了一些Unicode的細節(jié)。寫成一篇文章,送給有過類似疑問的朋友。本文在寫作時盡量做到通俗易懂,但要求讀者知道什么是字節(jié),什么是十六進制。

0、big endian和little endian
big endian和little endian是CPU處理多字節(jié)數(shù)的不同方式。例如“漢”字的Unicode編碼是6C49。那么寫到文件里時,究竟是將6C寫在前面,還是將49寫在前面?如果將6C寫在前面,就是big endian。如果將49寫在前面,就是little endian。

“endian”這個詞出自《格列佛游記》。小人國的內(nèi)戰(zhàn)就源于吃雞蛋時是究竟從大頭(Big-Endian)敲開還是從小頭(Little-Endian)敲開,由此曾發(fā)生過六次叛亂,一個皇帝送了命,另一個丟了王位。

我們一般將endian翻譯成“字節(jié)序”,將big endian和little endian稱作“大尾”和“小尾”。

1、字符編碼、內(nèi)碼,順帶介紹漢字編碼
字符必須編碼后才能被計算機處理。計算機使用的缺省編碼方式就是計算機的內(nèi)碼。早期的計算機使用7位的ASCII編碼,為了處理漢字,程序員設(shè)計了用于簡體中文的GB2312和用于繁體中文的big5。

GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區(qū)的內(nèi)碼范圍高字節(jié)從B0-F7,低字節(jié)從A1-FE,占用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。

GB2312支持的漢字太少。1995年的漢字擴展規(guī)范GBK1.0收錄了21886個符號,它分為漢字區(qū)和圖形符號區(qū)。漢字區(qū)包括21003個字符。

從ASCII、GB2312到GBK,這些編碼方法是向下兼容的,即同一個字符在這些方案中總是有相同的編碼,后面的標準支持更多的字符。在這些編碼中,英文和中文可以統(tǒng)一地處理。區(qū)分中文編碼的方法是高字節(jié)的最高位不為0。按照程序員的稱呼,GB2312、GBK都屬于雙字節(jié)字符集 (DBCS)。

2000年的GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數(shù)民族文字。從漢字字匯上說,GB18030在GB13000.1的20902個漢字的基礎(chǔ)上增加了CJK擴展A的6582個漢字(Unicode碼0x3400-0x4db5),一共收錄了27484個漢字。

CJK就是中日韓的意思。Unicode為了節(jié)省碼位,將中日韓三國語言中的文字統(tǒng)一編碼。GB13000.1就是ISO/IEC 10646-1的中文版,相當于Unicode 1.1。

GB18030的編碼采用單字節(jié)、雙字節(jié)和4字節(jié)方案。其中單字節(jié)、雙字節(jié)和GBK是完全兼容的。4字節(jié)編碼的碼位就是收錄了CJK擴展A的6582個漢字。例如:UCS的0x3400在GB18030中的編碼應(yīng)該是8139EF30,UCS的0x3401在GB18030中的編碼應(yīng)該是8139EF31。

微軟提供了GB18030的升級包,但這個升級包只是提供了一套支持CJK擴展A的6582個漢字的新字體:新宋體-18030,并不改變內(nèi)碼。Windows 的內(nèi)碼仍然是GBK。

 

Tags:

思為網(wǎng)絡(luò)騰訊企業(yè)微博,請關(guān)注我們:
已有位網(wǎng)友對“網(wǎng)頁設(shè)計gbk編碼與utf-8編碼、Unicode編碼的區(qū)別詳解--網(wǎng)站建設(shè)知識”發(fā)表評論。

 

www.sw996.com/seoblog/
利辛县| 南丹县| 泉州市| 徐汇区| 昌邑市| 栖霞市| 海原县| 工布江达县| 大名县| 英吉沙县| 陆川县| 同心县| 南宫市| 犍为县| 扎囊县| 英德市| 蕉岭县| 海门市| 章丘市| 青浦区| 兴隆县| 和硕县| 自贡市| 蒙山县| 辉县市| 泽州县| 延边| 阿瓦提县| 共和县| 天等县| 江津市| 宁德市| 彰武县| 秀山| 韶关市| 扎赉特旗| 白银市| 大埔县| 邳州市| 得荣县| 济南市|