日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3随记——字符编码

發布時間:2024/9/21 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3随记——字符编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1什么是字節

字節(Byte)是計算機信息技術用于計量存儲容量的一種計量單位,也表示一些計算機編程語言中的數據類型和語言字符。

比特(bit)在計算機中最小的單位,在二進制位的電腦的系統中,每一bit,表示0或1 ,的數字信號。

?

1.1.1在不同字符編碼的字節表示

  • ASCII碼:一個英文字母(不分大小寫)占一個字節(1B)的空間。一個二進制數字序列,在計算機中作為一個數字單元,一般為8位二進制數,換算成10進制,最小值0,最大值255.
  • utf-8編碼:一個英文字符等于一個字節,一個中文(含繁體)等于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,千字節)=1024B= 2^10 B; 1MB(Mebibyte,兆字節,百萬字節,簡稱“兆”)=1024KB= 2^20 B; 1GB(Gigabyte,吉字節,十億字節,又稱“千兆”)=1024MB= 2^30 B; 1TB(Terabyte,萬億字節,太字節)=1024GB= 2^40 B; 1PB(Petabyte,千萬億字節,拍字節)=1024TB= 2^50 B; 1EB(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并不是直接的對應,而是要過一些算法和規則來轉換。

    更新中。。。。。

    轉載于:https://www.cnblogs.com/keme/p/6029632.html

    總結

    以上是生活随笔為你收集整理的python3随记——字符编码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。