Unicode 與 UTF8

本文非徹底原創, 更多的是整理後加入html

Last-Modified: 2019年5月10日15:24:16瀏覽器

參考連接

先上總結

Unicode 是一個符號集, 規定了全部符號的二進制編號.服務器

Unicode 也稱爲 UCS(Universal Multiple-Octet Coded Character Set)

UTF8 是unicode的一種編碼方式(存儲, 傳輸方式)編碼

ASCII

ascii碼範圍: 1~128, 只須要1個字節, 最前面的一位固定爲 0spa

clipboard.png

unicode 編碼佔用3個字節, 它包含了全部的字符.net

Unicode 只是一個符號集,它只規定了符號的二進制代碼,沒有規定這個二進制代碼如何存儲。code

存儲Unicode的編碼方式的經常使用方式:htm

  • utf-8 變長編碼, 長度從 1個字節~6個字節不等
  • utf-16 佔用2個字節
  • utf-32 佔用4個字節

utf-8 編碼規則

  1. 對於單字節的符號,字節的第一位設爲0,後面7位爲這個符號的 Unicode 碼。所以對於英語字母,UTF-8 編碼和 ASCII 碼是相同的。
  2. 對於n字節的符號(n > 1),第一個字節的前n位都設爲1,第n + 1位設爲0,後面字節的前兩位一概設爲10。剩下的沒有說起的二進制位,所有爲這個符號的 Unicode 碼。

下表總結了編碼規則,字母x表示可用編碼的位。blog

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編碼。ip

用記事本編輯的時候,從文件讀取的UTF-8字符被轉換爲Unicode字符到內存裏,編輯完成後,保存的時候再把Unicode轉換爲UTF-8保存到文件:

clipboard.png

瀏覽網頁的時候,服務器會把動態生成的Unicode內容轉換爲UTF-8再傳輸到瀏覽器:

clipboard.png


做者:Deft_MKJing宓珂璟
來源:CSDN
原文:https://blog.csdn.net/Deft_MK...
版權聲明:本文爲博主原創文章,轉載請附上博文連接!

UTF-16

字節順序標記(Byte Order Mark, BOM), 位於文檔開頭的前2個字節, 用於標記存儲的字節序, 是按 "大端"仍是"小端"順序存儲.

借個圖(UTF8你 的utf8編碼存儲文件內容):

clipboard.png

feff 表示內容是按大端序存儲: 高位字節放在內存的低地址,低位字節放在內存的高地址

fffe表示內容是按小端序存儲:低位字節放在內存的低地址,高位字節放在內存的高地址。

UTF-8不須要BOM來代表字節順序,但能夠用BOM來代表編碼方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8編碼是EF BB BF

U 的UTF16編碼是 0055, 但按照小端序存儲時是 5500

注意, utf8並無這個煩惱, 不要搞亂.

在UTF16下,存儲的字節值和unicode是一一對應的。可是UTF16顯示英文(asni)就浪費一個字節。

其餘

英文字符編碼 ANSI

簡體中文 GB2312

繁體中文 Big5

相關文章
相關標籤/搜索