亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

【2-2】Python基礎——字符編碼

2019-11-06 07:32:35
字體:
來源:轉載
供稿:網友

二 字符編碼

因為計算機只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。最早的計算機在設計時采用8個比特(bit)作為一個字節(byte)。所以,一個字節能表示的最大的整數就是255(二進制11111111=十進制255)。

如果要表示更大的整數,就必須用更多的字節。比如兩個字節可以表示的最大整數是65535,4個字節可以表示的最大整數是4294967295

1.ASCII編碼

由于計算機是美國人發明的,因此,最早只有127個字母被編碼到計算機里,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱為ASCII編碼。

比如大寫字母A的編碼是65,小寫字母z的編碼是122

2.Unicode

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

因此,Unicode應運而生。Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。

Unicode標準也在不斷發展,但最常用的是用兩個字節表示一個字符(如果要用到非常偏僻的字符,就需要4個字節)。現代操作系統和大多數編程語言都直接支持Unicode。


ASCII編碼和Unicode編碼的區別:ASCII編碼是1個字節,而Unicode編碼通常是2個字節。

字母A用ASCII編碼是十進制的65,二進制的01000001;

字符0用ASCII編碼是十進制的48,二進制的00110000;

漢字中已經超出了ASCII編碼的范圍,用Unicode編碼是十進制的20013,二進制的01001110 00101101

如果把ASCII編碼的A用Unicode編碼,只需要在前面補0就可以。因此,A的Unicode編碼是00000000 01000001


3.UTF-8編碼

統一成Unicode編碼,亂碼問題從此消失了。但是,如果寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲空間,在存儲和傳輸上就十分不劃算。

所以,本著節約的精神,又出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。

UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節。常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。如果要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間。

4.三者關系

這里寫圖片描述

從上面的表格還可以發現,UTF-8編碼有一個額外的好處,就是ASCII編碼實際上可以被看成是UTF-8編碼的一部分。所以,大量只支持ASCII編碼的歷史遺留軟件可以在UTF-8編碼下繼續工作。

5.計算機系統通用的字符編碼工作方式

在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉換為UTF-8編碼。

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

這里寫圖片描述

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

這里寫圖片描述

6.字符串轉換

1)ASCII碼轉換:Python提供了ord()和chr()函數,可以把字母和對應的數字相互轉換。

>>> ord('A')65>>> chr(65)'A'

2)Unicode

以Unicode表示的字符串用u'...'表示。

>>> PRint u'中文'中文>>> u'中文'u'/u4e2d/u6587'

u'中文'u'/u4e2d/u6587'是一樣的,/u后面是十六進制的Unicode碼。因此,u'A'u'/u0041'也是一樣的。


3)Unicode與UTF-8相互轉換

Unicode→UTF-8

u'xxx'轉換為UTF-8編碼的'xxx‘用encode('utf-8')方法:

>>> u'ABC'.encode('utf-8')'ABC'>>> u'中文'.encode('utf-8')'/xe4/xb8/xad/xe6/x96/x87'

英文字符轉換后表示的UTF-8的值和Unicode值相等(但占用的存儲空間不同),而中文字符轉換后1個Unicode字符將變為3個UTF-8字符,你看到的/xe4就是其中一個字節,因為它的值是228,沒有對應的字母可以顯示,所以以十六進制顯示字節的數值。


len()函數可以返回字符串的長度:

>>> len(u'ABC')3>>> len('ABC')3>>> len(u'中文')2>>> len('/xe4/xb8/xad/xe6/x96/x87')6

UTF-8→Unicode

把UTF-8編碼表示的字符串'xxx'轉換為Unicode字符串u'xxx'decode('utf-8')方法:

>>> u'ABC'.encode('utf-8')'ABC'>>> 'abc'.decode('utf-8')u'abc'>>> '/xe4/xb8/xad/xe6/x96/x87'.decode('utf-8')u'/u4e2d/u6587'>>> print "/xe4/xb8/xad/xe6/x96/x87".decode('utf-8')中文>>> print u'/u4e2d/u6587'中文

由于Python源代碼也是一個文本文件,所以,當你的源代碼中包含中文的時候,在保存源代碼時,就需要務必指定保存為UTF-8編碼。

當Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取,我們通常在文件開頭寫上這兩行:

#!/usr/bin/env python# -*- coding: utf-8 -*-

第一行注釋是為了告訴linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個注釋;

第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會有亂碼。

轉自http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819196283586a37629844456ca7e5a7faa9b94ee8000


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97在线免费视频| 2019中文字幕在线| 91精品国产综合久久男男| 亚洲新中文字幕| 高清欧美电影在线| 欧美裸体xxxx极品少妇| 国产精品精品国产| 日韩免费中文字幕| 国产成人一区二区三区| 久久久久久国产精品三级玉女聊斋| 欧美性生交xxxxx久久久| 国产美女扒开尿口久久久| zzijzzij亚洲日本成熟少妇| 91wwwcom在线观看| 亚洲电影第1页| 久久精品欧美视频| 久久视频中文字幕| 亚洲一区二区久久久| 美女精品视频一区| 久久综合色88| 久久综合电影一区| 亚洲97在线观看| 国产在线精品一区免费香蕉| 中文字幕日韩视频| 深夜精品寂寞黄网站在线观看| 国产精品视频播放| 久久夜精品va视频免费观看| 视频在线观看99| 狠狠躁夜夜躁久久躁别揉| 国产精品久久久久久久久男| 日韩大胆人体377p| 久久这里有精品视频| 亚洲视频综合网| 久久97久久97精品免视看| 成人亚洲欧美一区二区三区| 欧美老女人bb| 色诱女教师一区二区三区| 欧美午夜女人视频在线| 亚洲v日韩v综合v精品v| 精品久久久久久久久久久| 18性欧美xxxⅹ性满足| 亚洲成人精品视频| 欧美成人激情图片网| 一区二区三区动漫| 成人在线国产精品| 欧美中文字幕视频| 中文字幕在线看视频国产欧美在线看完整| 成人午夜激情网| 日韩精品在线视频| 久久99精品久久久久久噜噜| 日韩视频在线观看免费| 欧美精品日韩三级| 日韩电影大片中文字幕| 国产欧美一区二区三区视频| 高清亚洲成在人网站天堂| 亚洲精品久久久久| 欧美极品少妇xxxxⅹ喷水| 欧美一级高清免费播放| 欧美日韩精品二区| 91在线视频九色| 国产精品精品久久久久久| 国产精品久久不能| 成人精品福利视频| 91精品啪aⅴ在线观看国产| 欧美精品在线看| 日韩精品有码在线观看| 亚洲国产精品小视频| 国产精品美女主播| 不卡av电影院| 亚洲风情亚aⅴ在线发布| 亚洲精品日韩激情在线电影| 亚洲性夜色噜噜噜7777| 亚洲毛片在线看| 久久久久久久影院| 午夜精品99久久免费| 97精品国产97久久久久久春色| 欧美一级电影久久| 国产日韩中文字幕在线| 日韩女在线观看| 国产精品直播网红| 91成人在线视频| 91最新国产视频| 日本一欧美一欧美一亚洲视频| 欧美激情视频在线| 亚洲精品白浆高清久久久久久| 亚洲人成亚洲人成在线观看| 久久韩剧网电视剧| 国产不卡视频在线| 欧美激情视频一区| 亚洲剧情一区二区| 亚洲网站视频福利| 国产日韩精品一区二区| 美日韩精品免费观看视频| 亚洲黄色av女优在线观看| 亚洲国产91精品在线观看| 亚洲一区二区在线| 国产一区二区三区直播精品电影| 久久国内精品一国内精品| 91天堂在线观看| 亚洲美女av网站| 亚洲欧洲黄色网| 日韩经典一区二区三区| 欧美一区三区三区高中清蜜桃| 久久频这里精品99香蕉| 久久精品国产欧美激情| 国产深夜精品福利| 日韩电影中文字幕在线| 亚洲国模精品一区| 51视频国产精品一区二区| 欧美性xxxx极品hd欧美风情| 欧美日在线观看| 欧美成人性色生活仑片| 成人国产在线激情| 国产亚洲欧洲高清| 国产成人一区二区三区| 欧美中文在线观看国产| 国产丝袜一区二区三区| 日韩欧美在线看| 最近日韩中文字幕中文| 精品视频www| 欧美另类精品xxxx孕妇| 国产91色在线播放| 亚洲欧美日韩一区二区在线| 国产丝袜高跟一区| 久热精品在线视频| 欧美极品少妇全裸体| 亚洲精品大尺度| 欧美二区在线播放| 欧美日韩国产区| 欧美日韩在线视频首页| 亚洲欧美日韩高清| 亚洲天堂免费视频| 日韩精品在线观看视频| 亚洲成av人乱码色午夜| 在线观看不卡av| 97国产精品视频| 国产97人人超碰caoprom| 国产精品一区二区三区久久| 91精品啪在线观看麻豆免费| 亚洲精品视频网上网址在线观看| 欧美激情视频网址| 亚洲综合第一页| 亚洲欧美日本另类| 亚洲精选中文字幕| 欧美一区二区视频97| 亚洲国产一区二区三区四区| 91人人爽人人爽人人精88v| 亚洲人成网站色ww在线| 欧美性xxxxxx| 日韩网站免费观看高清| 国产精品普通话| 国产91色在线|免| 国产精品99久久久久久久久久久久| 久久在线精品视频| 欧美国产视频一区二区| 成人国产精品日本在线| www.午夜精品| 亚洲女人初尝黑人巨大| 欧美亚洲在线播放| 91夜夜揉人人捏人人添红杏| 欧美日韩中文在线观看| 福利精品视频在线| 在线精品播放av| 国产精品你懂得|