python 編碼

windows中國中通常使用GBKpython

其中ASCII碼在存儲是佔一個字符,但只能支持英文windows

unicode支持中文和英文,可是在存儲英文是須要佔用2個字符,所以爲了解決中文的問題,拓展出了utf-8(中文3個字符,英文1個字符)python2.7

python3默認使用的是unicode編碼編碼

python2默認使用ASCII編碼spa

python2.7 和python3+ 有很大的區別:code

其中python2編碼encode後只改變字符串的編碼,python3編碼encode後不僅是改變字符的編碼,字符的格式也會改變,會變成byte格式blog

 

python2:utf-8

 1 [yangdong@hd04 ~]$ cat test.py 
 2 #-*- coding:utf-8 -*-  #生命當前文本使用utf-8的編碼格式
 3 import sys
 4 print (sys.getdefaultencoding()) #獲取當前環境默認編碼格式
 5 s = "你好"
 6 s_to_unicode=s.decode("utf-8")
 7 print(s_to_unicode,type(s_to_unicode))
 8 s_to_gbk = s.decode("utf-8").encode("gbk")
 9 print(s_to_gbk)
10 [yangdong@hd04 ~]$ python test.py 
11 ascii             
12 (u'\u4f60\u597d', <type 'unicode'>)
13 ţº

python3:ci

 1 #-*-coding:utf-8-*-
 2 import sys
 3 print(sys.getdefaultencoding())
 4 
 5 s = "你好"
 6 s_to_gbk=s.encode("gbk")
 7 print(s_to_gbk,type(s_to_gbk))
 8 
 9 
10 
11 運行結果:
12 utf-8
13 b'\xc4\xe3\xba\xc3' <class 'bytes'>

由上能夠看出當python3更改字符的編碼是,輸出的結果再也不是字符串了,而是bytes類型unicode

 

 

 

任何格式的編碼在相互變換時,只須要圍繞這unicode進行轉換就能夠。

相關文章
相關標籤/搜索