python2 與 python3 的編碼
阿新 • • 發佈:2018-01-05
輸出 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 的編碼