中文精品一区二区_久99久免费精品视频_亚洲第一福利天堂在线观看视频网站_国产经典aⅴ三级观看

您現(xiàn)在所在的位置:首頁(yè) >關(guān)于奇酷 > 行業(yè)動(dòng)態(tài) > python快速入門-字符編碼

python快速入門-字符編碼

來(lái)源:奇酷教育 發(fā)表于:

python快速入門-字符編碼。

  計(jì)算機(jī)中顯示的文字都需要編碼格式的支持,否則你只能看到0、1組成的神秘序列
 
  什么是編碼:
 
  計(jì)算機(jī)出生之初僅僅為了計(jì)算,所以只有數(shù)字0、1
 
  后來(lái),計(jì)算機(jī)有了更多的訴求,希望能記錄更多的文字信息,但是計(jì)算機(jī)還是只認(rèn)識(shí)0、1怎么辦?
 
  有人出了主意:讓數(shù)字0代表一個(gè)字,數(shù)字1代表一個(gè)字以此類推:
 
  0--文字1
 
  1--文字2
 
  2--文字3
 
  3--文字4
 
  4--文字5
 
  ......
 
  于是這樣的對(duì)照表就稱為編碼格式
 
  編碼的變遷史:
 
  早期計(jì)算機(jī)表示的數(shù)字很少:8位機(jī)時(shí)代 0-255 所以只能表示256個(gè)文字 ascii編碼格式/iso8859-1
 
  chr(數(shù)字)可以將數(shù)字變?yōu)榇a表中的文字
 
  print(chr(97))
 
  計(jì)算機(jī)迅速傳入各個(gè)國(guó)家:中國(guó)出現(xiàn)了gbk(國(guó)標(biāo)碼) gb2312(簡(jiǎn)體碼) big5(繁體碼)
 
  亂碼時(shí)代:各個(gè)國(guó)家都有各自的編碼格式,那么計(jì)算機(jī)在傳輸后,就會(huì)亂碼:
 
  例:
 
  可以使用內(nèi)置函數(shù)ord(‘文字’)獲取文字的底層數(shù)據(jù):
 
  print(ord('中'))
 
  “中”:底層數(shù)字是20013
 
  但是可能韓文編碼下可能未對(duì)20013進(jìn)行映射,那么就會(huì)顯示? 這就是亂碼!
 
  大一統(tǒng)時(shí)代:unicode
 
  unicode的出現(xiàn)讓亂碼亂象得到控制
 
  unicode碼將幾乎所有文字都約束在它的編碼之下,世界使用一種碼,自然沒(méi)有亂碼
 
  中文范圍:"\u4e00"--"\u9fa5"
 
  print("\u4e2d")
 
  現(xiàn)狀:utf-8
 
  unicode作為國(guó)際統(tǒng)一碼,也叫雙字節(jié)編碼,不利于網(wǎng)絡(luò)傳輸,網(wǎng)絡(luò)大多流轉(zhuǎn)英文字符居多
 
  so就出現(xiàn)了變種的unicode:utf-8:英文單字節(jié),其他文字三字節(jié)。
 
  為了世界不再亂碼,請(qǐng)用utf-8?。。?/div>
 
  組碼:會(huì)得到一個(gè)bytes序列
 
  字符串.encode(encoding='UTF-8', errors='strict')
 
  解碼:會(huì)得到一個(gè)按編碼解析的字符串
 
  字節(jié)序列.decode(encoding='UTF-8', errors='strict')
 
  如果設(shè)置為strict,代表遇到非法字符時(shí)拋出異常; 
 
  如果設(shè)置為ignore,則會(huì)忽略非法字符; 
 
  如果設(shè)置為replace,則會(huì)用?取代非法字符; 
 
  如果設(shè)置為xmlcharrefreplace,則使用XML的字符引用