python3隨記——字元編碼

來源:互聯網
上載者:User

標籤:交換   資料轉送   變化   混合   組成   back   tip   傳輸   速度   

1.1什麼是位元組

位元組(Byte)是電腦資訊技術用於計量儲存容量的一種計量單位,也表示一些電腦程式設計語言中的資料類型和語言字元。

位元(bit)在電腦中最小的單位,在二進位位的電腦的系統中,每一bit,表示0或1 ,的數字訊號。

 

1.1.1在不同字元編碼的位元組表示
  1. ASCII碼:一個英文字母(不分大小寫)佔一個位元組(1B)的空間,一個中文漢字佔兩個位元組(2B)的空間。一個位元字序列,在電腦中作為一個數字單元,一般為8位位元,換算成10進位,最小值0,最大值255.
  2. utf-8編碼:一個英文字元等於一個位元組,一個中文(含繁體)等於3個位元組。
  3. unicode編碼:一個英文等於兩個位元組,一個中文(含繁體)等於2個位元組。

符號: 英文標點佔一個位元組,中文的標點佔兩個位元組。例:英文句號"."佔一個位元組大小,中文句號"。"佔兩個位元組大小。

1.2進位的表示和轉換

進位的表示:

二進位: 0 1

8進位 : 0 1 2 3 4 5 6 7 (0-7的組合)(8進位的一位對應2進位的3位,不足3位補位用0表示)

10進位:0-9的組合

16進位:0 1 2 3 4 5 6 7 8 9 A B C D E F(0-F的組合)(16進位的一位對應2進位的4位,不足4位補位用0表示)

 

進位之間的轉換:

http://jingyan.baidu.com/article/495ba84109665338b30ede98.html

1.3資料存放區和資料轉送

資料存放區

硬碟廠商是以10進位(即10的3次方=1000,1MB = 1000KB)計算的,而電腦是二進位表示(2的10次方,即1MB = 1024KB)。

在電腦好多1TB的硬碟,在電腦只有

1TB = 1000GB = 1000000MB = 1000000000KB = 1000000000000B  硬碟廠商表示

1TB = 1000000000000B /1024 /1024 /1024 = 931GB   電腦容量表示

1KB=1024B;1MB=1024KB=1024×1024B。其中1024=210。1B(byte,位元組)= 8 bit(見下文);1KB(Kibibyte,KB)=1024B= 2^10 B;1MB(Mebibyte,MB,百萬位元組,簡稱“兆”)=1024KB= 2^20 B;1GB(Gigabyte,吉位元組,十億位元組,又稱“千兆”)=1024MB= 2^30 B;1TB(Terabyte,萬億位元組,太位元組)=1024GB= 2^40 B;1PB(Petabyte,千萬億位元組,拍位元組)=1024TB= 2^50 B;1EB(Exabyte,Exabyte,艾位元組)=1024PB= 2^60 B;1ZB(Zettabyte,十萬億億位元組,澤位元組)= 1024EB= 2^70 B;1YB(Yottabyte,一億億億位元組,堯位元組)= 1024ZB= 2^80 B;1BB(Brontobyte,一千億億億位元組)= 1024YB= 2^90 B;1NB(NonaByte,一百萬億億億位元組) = 1024 BB = 2^100 B;1DB(DoggaByte,十億億億億位元組) = 1024 NB = 2^110 B

 資料轉送:

資料存放區是位元組("Byte")為單位,資料轉送大多是以“位”("bit",又名“位元”)為單位,一個位就表示0或q(即二進位),每8個位("bit",簡寫為b)組成一個位元組(Byte,簡寫B),bit是最小一級的資訊單位

在電腦中傳輸的最小單位是訊號單位bit ,數字資訊流的基本單位是bit,時間的基本單位是s(秒),因此bit/s(位元每秒)是描述寬頻基本單位。

頻寬(bps)就是在一個固定的時間內(1秒),能通過的最大位元據。

bps (bit per second)

例: 

有些寬頻電訊廠商,一個20Mbps的頻寬  ,而實際的最大下載速度大約只有2.5MB/s (這是以每秒多少位元組下載,大寫B)

20Mb/s = 20 / 8 = 2.5MB/s

1Mb/s = 1024Kb/s =  1024Kb / 8  = 128KB / s  

你的上傳速度和下載速度 都是共用你的頻寬

 

1.4字元編碼

字元編碼就是:特定的字元如何對應一個特定的數字標準

1.ASCII編碼

  由於電腦是美國人發明的,因此,最早只有128個字母被編碼到電腦裡,也就是大小寫英文字母、數字和一些英文符號,這個編碼被稱為ASCII碼,最初使用的是ASCII碼(American  Standared  Code for information  interchange ,美國標準資訊交換碼)。

 雖然標準ASCII字元集字元數目有限, 但由於電腦基本處理單位為位元組(1Byte =1bit ),所以一般 任意一個位元組存放一個ASCII字元,每一個位元組中多餘出來的一位(最高位)在電腦內部通常保持為0(在資料轉送是可用做同位位元。)由於標準ASCII字元集數目有限,在實際應用中往往不夠用,後來加入了很多畫表格時需要用到底線、豎線、交叉等序號遍到了最後一個狀態255,從128到255這一頁的字元集稱為“擴充字元集”。

2.GBK 、GB18030、GB2312

GB2312(1980年)一共收錄了7445個字元,包括6763個漢字和682個其它符號。漢字區的內碼範圍高位元組從B0-F7,低位元組從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。

GB2312 支援的漢字太少。1995年的漢字擴充規範GBK1.0收錄了21886個符號,它分為漢字區和圖形符號區。漢字區包括21003個字元。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。現在的PC平台必須支援GB18030,對嵌入式產品暫不作要求。所以手機、MP3一般只支援GB2312。

GBK就是漢字編碼的規範

從ASCII、GB2312、GBK 到GB18030,這些編碼方法是向下相容的,即同一個字元在這些方案中總是有相同的編碼,後面的標準支援更多的字元。

3.unicode編碼

全世界有上百種語言,日本把日文編到Shift_JIS裡,韓國把韓文編到Euc-kr裡,各國有各國的標準,就會不可避免地出現衝突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。

因此,Unicode應運而生。Unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。Unicode標準也在不斷髮展,但最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代作業系統和大多數程式設計語言都直接支援Unicode。

UNICODE 。( Universal Multiple-Octet Coded Character Set )簡稱UCS

在UNICODE 中,一個漢字算兩個英文字元的時代已經快過去了。

無論是半形的英文字母,還是全形的漢字,它們都是統一的“一個字元”!同時,也都是統一的“兩個位元組"”

請注意”字元”和”位元組”兩個術語的不同,“位元組”是一個8位的物理存貯單元,而“字元”則是一個文化相關的符號。在unicode中,一個字元就是兩個位元組。一個漢字算兩個英文字元的時代已經快過去了。

我們已經知道,英文字母只用一個位元組表示就夠了,如果unicode統一規定,一個字元都表示兩位元組這對於儲存空間來說是極大的浪費,文字檔的大小會因此大出二倍,這是難以接受的。

4.UTF-8

unicode在很長一段時間內無法推廣,直到互連網的出現,為解決unicode如何在網路上傳輸的問題,於是面向傳輸的眾多 UTF(UCS Transfer Format)標準出現了,顧名思義,UTF-8就是每次8個位傳輸資料,

而UTF-16就是每次16個位。UTF-8就是在互連網上使用最廣的一種unicode的實現方式,這是為傳輸而設計的編碼,並使編碼無國界,這樣就可以顯示全世界上所有文化的字元了。

UTF-8最大的一個特點,就是它是一種變長的編碼方式。它可以使用1~4個位元組表示一個符號,根據不同的符號而變化位元組長度,當字元在ASCII 碼的範圍時,就用一個位元組表示,保留了ASCII字元一個位元組的編碼做為它的一部分,注意的是unicode一個中文字元佔2個位元組,而UTF-8一個中 文字元佔3個位元組)。從unicode到uft-8並不是直接的對應,而是要過一些演算法和規則來轉換。


     

python3隨記——字元編碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.