Python字元編碼問題

2021-06-27 19:29:24 字數 769 閱讀 9846

寫python經常受到字元編碼的困擾, 此問題主要是在2.x中. 因為2.x中的字串有兩種型別: str和unicode, 它們共同的祖先是basestring.下面的經驗主要是基於windows上面的python2.x, 使用macos可以減少許多不必要的煩惱.

之所以經常出現字元亂碼,有以下幾點原因:

python預設使用ascii碼解釋,有時候檔案流(或者其他流)不是ascii碼的時候會出現亂碼

windows_中文版使用的是gbk編碼,(尤其是windows的命令列工具)

讀取的流,有時候是gbk編碼(或者其他編碼格式)

str型別與unicode型別轉換或者拼接的時候,由於不一致會發生錯誤.

解決方法主要有下面幾種:

檔案第一行寫上注釋:  # coding=utf-8, 告知python直譯器源**的編碼格式

所有與字串相關的變數都設定成為unicode型別, 比如 name = u"xiaoming"

利用unicode編碼作為橋梁轉換, 先解碼成為unicode,之後編碼成為你的目標編碼格式. 比如乙個檔案時utf-8編碼,但是windows命令列是gbk編碼,可以這樣: filehandle.read().decode("utf-8").encode("gbk"), decode是解碼成為unicode編碼(按照utf-8的規則解碼, 這個過程是utf-8-->unicode), encode是再次將字串編碼成為gbk格式(這個過程是: unicode-->gbk),這樣windows命令列就可以正常讀取出來了

使用codecs模組.

Python 字元編碼問題

在做自動化測試過程中,總是遇到編碼問題,總結以下幾點 1 在python指令碼中想要有中文出現,比如中文注釋,解決方法 在檔案的頭部加上 coding utf 8 2 想要實現writelines能夠寫入中文 a.file.writelines u 中文 b.str 這裡輸入中文 file.writ...

python字元編碼問題

前言 字元編碼非常容易出問題,我們要牢記幾句話 1.用什麼編碼儲存的,就要用什麼編碼開啟 2.程式的執行,是先將檔案讀入記憶體中 3.unicode是父編碼,只能encode解碼成其他編碼格式 utf 8,gbk這些是子8編碼,只能decode編碼成unicode 一 什麼是字元編碼 我們知道,計算...

python字元編碼問題

字串在python內部的表示是unicode編碼,因此,在做編碼轉換時,通常需要以unicode作為中間編碼 decode 將其他編碼的字串轉換成unicode編碼,如str1.decode gb2312 表示將gb2312編碼的字串轉換成unicode編碼。encode 將unicode編碼轉換成...