在運行的時候,有時候會報編碼錯誤,本文就來研究一下這個問題。
為什么會出現亂碼呢?因為在文件存的時候格式和讀取時候格式不一致就會亂碼了。
字符串在python內部的表示是unicode編碼,也可以說現在的內存是unicode編碼格式,硬盤是utf-8。平常的數據操作都是先把數據讀取到內存中,所以內存中都是unicode編碼格式。所以我們平常在做編碼轉換時候,通常用unicode作為中間編碼。先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼格式。
decode的作用是將二進制數據解碼成unicode編碼,如str1.decode('utf-8'),表示將utf-8的編碼字符串解碼成unicode編碼。
簡單的來說:decode就是把二進制數據(bytes)轉化成人看的懂得英文或者漢字(decode用的比較多)
encode的作用是將unicode編碼的字符串編碼成二進制數據,如str2.encode('utf-8'),表示將unicode編碼的字符串編碼成utf-8。