utf-8與unicode

來源:互聯網
上載者:User

字元編碼是從ASCII開始,那時候美國為瞭解決的字元問題,提出了ASCII碼。每個字元佔用一個位元組。但ASCII編碼實際只用了7位,空了一位。後來等電腦傳播開來,歐洲的各個國家出現了新的字元編碼的問題。如法國,出現了很多在英文字元上面加標記的字元,所有實際字元超過128種,但正好,一個位元組總共8位,原來ASCII原來不用的那一位就派上用場了。但是這使得歐洲的各個國家之間的字元編碼有衝突,也就是說前128位沒有問題,但是後面的128位在不同的國家表示的字元就不一樣,使得各國之間資訊交換有障礙。而這個障礙在電腦引入亞洲乃至全世界的時候變得越來越嚴重,阻礙了國際間的資訊交流。那麼如何解決呢?

其實也很簡單,只要字元編碼的位元提升到能夠容納世界上所有的字元就可以了。unicode碼應運而生。但是要知道每個字元要佔4個位元組。這對於美國和歐洲國家是難以接受的。因為美國等國家用到的字元只需要一個位元組就可以表示了。而unicode碼卻要讓這些國家浪費3/4的資源。這是讓美國等國家難以接受的!

所以unicode碼的utf-8表示形式很好的解決了這個問題。當然還有utf-16,utf-32這裡就不討論了。

 

utf-8是這樣編碼的,總共兩種情況。假設該字元的utf-8編碼佔n個位元組。

1:如果n=1,則位元組的第一位為0,後面的就是填充其unicode編碼。

2:如果n>1,則將第一個位元組的前n位置為1,將n+1位置為0。然後後面的每個位元組的前兩位為10。其他位填充其unicode編碼。

 

由上面的定義可以看出utf-8使用的還是unicode編碼,只是是一種變體,將unicode編碼中的無效位去除了。所以utf-8是unicode編碼的一種。

 

Unicode符號範圍 | UTF-8編碼方式
(十六進位) | (二進位)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

 

上面顯示的unicode字元範圍與utf-8編碼對應的形式。

 

按照這種規則,我們來實際看看一個字元的utf-8編碼是如何產生的?

“嚴”的unicode是4E25(100111000100101),可以看到其unicode符號範圍屬於0000 0800-0000 FFFF,那麼我們應該採取第三種形式1110xxxx 10xxxxxx 10xxxxxx,然後將100111000100101填充到x的地方,就得到了“嚴”的utf-8編碼如下:

11101001 10111000 10100101。

 

windows的notepad本身就提供四種編碼方式:

1:ASCII

2:unicode

3:unicode-big endian//表示大端序

4:utf-8

 

需要注意的是:unicode編碼的檔案都以兩個字元表示端序,FEFF表示大端序,以FFFE表示小端序。如何理解呢?

例如“嚴”的unicode是4E25,如果其儲存形式也是4E25,那麼表示高位在第一個位元組則就是大端序。

我們因特爾處理器多採用的小端序。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.