python中的編碼問題

decode的作用是將其他編碼的字符串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字符串str1轉換成unicode編碼。

encode的作用是將unicode編碼轉換成其他編碼的字符串,如str2.encode('utf-8'),表示將unicode編碼的字符串str2轉換成utf-8編碼。

<對于普通的str類型>
str字符串,它本身存儲的就是字節碼。如果這段代碼是在解釋器上輸入的,那么這個s的格式就是解釋器的編碼格式,對于windows的cmd而言,就是gbk;如果將段代碼是保存后才執行的,比如存儲為utf-8,那么在解釋器載入這段程序的時候,就會將s初始化為utf-8編碼。

str.encode("utf-8") 等價于 s.decode(defaultencoding).encode("utf-8")
defaultencoding設置方法:sys.setdefaultencoding('utf-8')
u = unicode("人生苦短") 等價于 u = unicode("人生苦短",defaultencoding)

str和unicode的區別

str是字節串,由unicode經過編碼(encode)后的字節組成的
unicode才是真正意義上的字符串,由字符組成

print函數會自動的做編碼轉換(按照文件設置的讀取編碼)

coding=<utf-8>

-- coding: utf-8 --

coding=UTF-8

是用來告訴解釋器按照什么編碼格式讀取這個文件。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容