HTML語言 什麼是Unicode什麼是UTF 8

2021-04-19 17:15:52 字數 2750 閱讀 8621

unicode和utf-8在製作網頁

中對於很多人不是很了解,到底是什麼樣的概念希望通過本文可以讓大家了解,首先說明一下現在常用的一些編碼方案:1、在中國,大陸最常用的就是gbk18030編碼,除此之外還有gbk,gb2312,這幾個編碼的關係是這樣的。

最早制定的漢字編碼是gb2312,包括6763個漢字和682個其它符號;95年重新修訂了編碼,命名gbk1.0,共收錄了21886個符號。之後又推出了gbk18030編碼,共收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字,現在windows平台必需要支援gbk18030編碼。按照gbk18030、gbk、gb2312的順序,3種編碼是向下相容,同乙個漢字在三個編碼方案中是相同的編碼。

2、台灣,香港等地使用的是big5編碼

3、日本:sjis編碼

如果把各種文字編碼形容為各地的方言,那麼unicode就是世界各國合作開發的一種語言。

在這種語言環境下,不會再有語言的編碼衝突,在同屏下,可以顯示任何語言的內容,這就是unicode的最大好處。那麼unicode是如何編碼的呢?其實非常簡單。就是將世界上所有的文字用2個位元組統一進行編碼。可能你會問,2個位元組最多能夠表示65536個編碼,夠用嗎?南韓和日本的大部分漢字都是從中國傳播過去的,字型是完全一樣的。  比如:「文」字,gbk和sjis中都是同乙個漢字,只是編碼不同而已。那樣,像這樣統一編碼,2個位元組就已經足夠容納世界上所有的語言的大部分文字了。

unicode的學名是"universal multiple-octet coded character set",簡稱為ucs。

現在用的是ucs-2,即2個位元組編碼,而ucs-4是為了防止將來2個位元組不夠用才開發的。ucs-2也稱為基本多文種平面,轉換到ucs-4只是簡單的在前面加2個位元組0。ucs-4則主要用於儲存輔助平面,例如unicode 4.0中的第二輔助平面

20000-20fff - 21000-21fff - 22000-22fff - 23000-23fff - 24000-24fff - 25000-25fff -   26000-26fff - 27000-27fff - 28000-28fff - 29000-29fff - 2a000-2afff - 2f000-2ffff

總共增加了16個輔助平面,由原先的65536個編碼擴充套件至將近100萬編碼。那麼既然統一了編碼,如何相容原先各國的文字編碼呢?這個時候就需要codepage了。

什麼是codepage?codepage就是各國的文字編碼和unicode之間的對映表。

比如簡體中文和unicode的對映表就是cp936,點這裡檢視官方的對映表;以下是幾個常用的codepage,相應的修改上面的位址的數字即可。

codepage=936 簡體中文gbk

codepage=950 正體中文big5

codepage=437 美國/加拿大英語

codepage=932 日文

codepage=949 韓文

codepage=866 俄文

codepage=65001 unicode uft-8

最後乙個65001,據個人理解,應該只是乙個虛擬的對映表,實際只是乙個演算法而已。

從936中隨意取一行,例如:

0x9993 0x6abd #cjk unified ideograph

前面的編碼是gbk的編碼,後面的是unicode。通過查這張表,就能簡單的實現gbk和unicode之間的轉換。

現在明白了unicode,那麼utf-8又是什麼呢?又為什麼會出現utf-8呢?

ascii轉換成ucs-2,只是在編碼前插入乙個0x0。用這些編碼,會包括一些控制符,比如 或 /,這在unix和一些c函式中,將會產生嚴重錯誤。因此可以肯定,ucs-2不適合作為unicode的外部編碼。因此,才誕生了utf-8。那麼utf-8是如何編碼的?又是如何解決ucs-2的問題呢?

例:e4 bd a0        11100100 10111101 10100000

這是「你」字的utf-8編碼

4f 60          01001111 01100000

這是「你」的unicode編碼

按照utf-8的編碼規則,分解如下:***x0100 xx111101 xx100000,把除了x之外的數字拼接在一起,就變成「你」的unicode編碼了。注意utf-8的最前面3個1,表示整個utf-8串是由3個位元組構成的。經過utf-8編碼之後,再也不會出現敏感字元了,因為最高位始終為1。

以下是unicode和utf-8之間的轉換關係表:

u-00000000 - u-0000007f: 0******x

u-00000080 - u-000007ff: 110***xx 10******

u-00000800 - u-0000ffff: 1110***x 10****** 10******

u-00010000 - u-001fffff: 11110*** 10****** 10****** 10******

u-00200000 - u-03ffffff: 111110xx 10****** 10****** 10****** 10******

u-04000000 - u-7fffffff: 1111110x 10****** 10****** 10****** 10****** 10******

unicode編碼轉換到utf-8,簡單的把unicode位元組流套到x中就變成utf-8了。

什麼是HTML檔案?

什麼是html檔案?html的英文全稱是hypertext marked language,中文叫做 超文字標記語言 和一般文字的不同的是,乙個html檔案不僅包含文字內容,還包含一些tag,中文稱 標記 乙個 html檔案的字尾名是.htm或者是.html。用文字編輯器就可以編寫html檔案。這就...

什麼是HTML檔案?

什麼是html檔案?html的英文全稱是hypertext marked language,中文叫做 超文字標記語言 和一般文字的不同的是,乙個html檔案不僅包含文字內容,還包含一些tag,中文稱 標記 乙個html檔案的字尾名是.htm或者是.html。用文字編輯器就可以編寫html檔案。這就試...

HTML教程(1) 什麼是HTML

博主個人主頁 這是我發布的第一篇系列教程 雖然我自己的技術還不怎麼樣 但是我想將我學習到的知識分享出來 所以才想到寫這麼一篇系列的教程來幫助正在學習前端的童鞋們 我會一直發布 從 html css js 等 希望看到我發布的朋友們能夠關注一下 我們一塊進步 可能寫的不好 歡迎大神們指出不好的地方 我...