1. 程式人生 > >python2 與 python3 的編碼

python2 與 python3 的編碼

輸出 sci log decode 單個 定義 unicode tr1 pytho

#coding:utf-8
import os
import sys
#當前環境py2.7
print(sys.getdefaultencoding()) #註意是編碼方式,不是編碼
#定義一個字符串
str = ‘中‘
#print(str)
print(len(str)) #長度3, utf-8
#str.encode(‘gbk‘) #報錯,當前編碼環境為ascii 不能直接從ascii映射到gbk 需解碼到unicode,在進行編碼
#print(str.decode(‘utf-8‘).encode(‘gbk‘))#??亂碼,當前環境為utf-8,設置gbk 顯示正常
#所以python 中定義中文盡量用unicode的方式,即前面加u
#python2在編碼的問題上還是留了很多的坑
#------------------------Python3------------------------------------
#python3中默認編碼方式是utf-8, 默認編碼為unicode 所以不管是中文英文都按照一個字符來算
#只是在編碼的時候選擇對應的編碼方式
str1 = ‘中abc‘
print(len(str1)) #可以看到輸出長度為4 不管是ascii還是中文都按單個字符來算
print(str1.encode(‘utf-8‘)) #b‘\xe4\xb8\xadabc‘
print(str1.encode(‘gbk‘)) #b‘\xd6\xd0abc‘

  

python2 與 python3 的編碼