python的編碼問題

2021-08-13 10:03:01 字數 1113 閱讀 3126

初學者對編碼問題一定非常頭痛,我開始時也是這樣,所以下、記錄一下到目前我對python編碼問題的理解。

首先,python的預設編碼是「ascii」 這是表示英文和數字的常用規範編碼。也就是說這個編碼方式下只能表示英文,也就是說一旦出現中文,就會出錯,無法識別。

先說一下python的檔案編碼大致處理流程,寫完**後,系統會按預設的編碼(即ascii)將你的**進行編譯,編譯成計算機能看懂的語言的,然後再列印輸出時,計算機才能識別並進行運算,列印出正確的結果。

這就是為什麼python在出現中文的情況下會無法識別中文並出錯。所以一般都要在開頭加上一行就行編碼的設定,根據使用的編輯器不同,設定編碼的語句也不經相同。以下就用使用最廣泛的 「pycharm」為例。

# coding=utf-8     設定編碼形式為utf-8。utf-8為最常用,使用率最高的中文編碼。在設定了中文編碼後,就可以識別中文,並將檔案以 utf-8編碼的形式就行儲存。

而在平時我們經常用到 載入檔案,或網上抓取資料,很多時候這些編碼都不會是完全一樣的,這就涉及到編碼的轉化,python中用 decode 解碼,encode 編碼。都需要進過unicode中間碼來進行轉換。

unicode 是什麼?

unicode是最通用的編碼格式,囊括了中文,英文,德文等常用多國語言,是乙個非常好的通用性編碼。基本上涉及到多程式語言,多軟體,多系統,多國家等等,在不同環境下程式設計都是使用 unicode編碼。

python的解碼編碼流程:

a編碼 → unicode → c編碼。任何編碼的轉換都是如此。

a.decode('utf-8')    %為將utf-8編碼形式的a轉換成 unicode 編碼,括號裡寫的是a的編碼形式,不是想要轉化成目標編碼形式。

python入門筆記(3):python的編碼問題

輸出為:

python入門筆記(3):python的編碼問題

然後,b.encode('utf-8')   %將unicode編碼轉換成utf-8編碼。括號裡寫的是想要轉換的目標形式。

基本就是這麼簡單。只是因為編碼種模擬較多,比如電腦txt文字的編碼是gb2312,cmd命令的編碼是gbk,由於這些的不同,才導致了麻煩,其實只要都將他們轉成unicode碼就可以了,平時資料的傳遞,大多都使用unicode。

Python 的編碼問題

我在爬取網頁解析的過程中出現了網頁內容解析不了的問題,雖然用記事本開啟是顯示正常的漢字和符號,但用winhex開啟就會出現亂碼的問題 把它放到cmd中也顯示亂碼 這個一般就是編碼問題,這種 編碼應該很可能是 utf 8 能在winhex中正常顯示漢字的應該是gb2312或者gbk編碼,所以用正規表示...

python的編碼問題

今天學習了python,作為乙個新手,對python的編碼問題仔細研究了一番,自己的理解如下 1 python 的檔案是以ascii編碼儲存,所以當python 檔案中有中文時 包括注釋 檔案開頭都要加 coding utf 8 或 coding gbk。2 python內部使用的都是unicode...

Python的編碼問題

python的編碼問題一般在有中文的情況下會出現。這裡的python檔案在windows環境下執行的。當python檔案不含中文時,無論.py檔案是anic ascii格式還是utf 8格式,在cmd中執行時都能得到正常的結果,但是.py檔案裡含中文時,直接編譯就會出現問題了。這裡主要有兩種情況 1...