1. 程式人生 > >python學習筆記09-python編碼與解碼

python學習筆記09-python編碼與解碼

utf-8 python學習 gbk nbsp 其他 code 中文 編碼 com

二進制編碼:

---》ASCII:只能存英文和拉丁字符 一個字符占一個字節:8位

------》gb2312:只能存6700多個中文: 1980年發表

-----------》gbk1.0:存了20000多 1995 年發表

----------------------》gb18030:2000 27000多

萬國碼:

-------》unicode:utf-32 一個字符占4個字節

-------》unicode:utf-16 一個字符占2個字節,能存65535個 絕大情況下可以存儲

-------》unicode:uft-8 可變長的 英文用ascii,占一個字節 一個中文占3個字節

由於各國編碼語言不一樣,為了使用方便,采用unicode作為中間碼

在python2中: 默認編碼為ASCII碼 要寫中文 就必須先聲明一下。

在文件開頭加上 # -*- coding:utf-8 -*-

編碼與解碼的方式要一致 才不會出現亂碼的現象。

假如你的控制臺是以GBK方式解碼的,那麽你的python源代碼就需要以GBK的方式來編碼 才不會出現亂碼的現象。

在做編碼轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

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

encode的作用是將unicode編碼編碼成其他編碼的字符串,如str2.encode(‘gb2312‘),表示將unicode編碼的字符串str2編碼成gb2312編碼。

技術分享圖片

在python3中:默認是utf-8

python學習筆記09-python編碼與解碼