為什麼python指令碼中使用中文會報錯解決方法已知

2021-06-28 17:14:16 字數 1565 閱讀 1480

1樓:匿名使用者

專門花了一下午,總結了python 2.x中,常見的編碼解碼方面的錯誤。

更主要的是,先給你解釋清楚了背後的邏輯

然後再給你解釋,錯誤的現象,現象背後的原因,以及如何解決,並且教你如何舉一反三等等。

此處只把幾種最常見的問題的原因給你摘錄過來:

python中,想要將某字串解碼為對應的unicode,但是所使用的編碼型別和字串本身的編碼不匹配

python中,列印字串時,字串本身的編碼,與輸出終端中所用編碼不匹配

python中,列印含某些特殊字元的unicode型別字串,但是輸出終端中字元編碼集中不包含這些特殊字元

詳細帖子內容,參見:

【總結】python 2.x中常見字元編碼和解碼方面的錯誤及其解決辦法

不能說我總結的是最全的,但是可以說,在這個特定問題上,比我把問題解釋的更清楚的,目前沒看到。

另外,還有一個相關的帖子:

【整理】python中字元編碼的總結和對比:python 2.x的str和unicode vs python 3.x的bytes和str

關於這部分內容,之前也是沒有看到解釋的清楚的,所以自己花時間,把其解釋的儘可能的清楚。不瞭解的人,可以去看看。

(此處不能貼地址,請自行用google搜帖子標題,就可以找到帖子地址了)

2樓:

gdk或utf-8,還能什麼原因,你不加這段,python無法識別中文,所以就報錯

3樓:小米飛貓

開頭添上針對不同平臺的中文編碼。

一般linux下用

# -*- coding: utf-8 -*-windows下gbk

# -*- coding: gbk -*-

4樓:love戕

這個我不知道,不好意思

在python中,同一程式的輸出,為什麼有的中文是亂碼,有的卻可以很好的顯示?

5樓:牛乃茴

在有中文的字串前加上u,譬如這裡用到print u' '.

是中文編碼的問題。建議在idle中加入#coding:utf-8 顯式指定編碼,若是抓取網頁,可以按需求encode() decode()

6樓:丶小四灬灬

#!/usr/bin/env python # -*- coding: utf-8 -*-

在檔案頭加上

您好 python用open開啟檔案 其中路徑有中文應該怎麼解決 自己搞不太明白 謝謝大神了:)

7樓:匿名使用者

指令碼開頭加上下面這句:

# -*- coding: utf-8 -*-這句用於定義python的預設編碼格

式。若**或註釋中含中文,

版python會使用unicode編碼格式,這樣權會報錯。

所以,python程式設計時最好習慣性地加上這句編碼格式的宣告。

8樓:匿名使用者

最傻瓜的,你新建個專用來寫**的英文資料夾不就好了。

python中使用esaygui模組出錯

沒用過這個模組,不過你可以使用help easygui 看看它支援的方法和屬性 應該是新版本的輸入問題 無法使用python的easygui模組?沒放對位置,python資料夾裡的檔案很多的,你隨便放也找不到,我記得我是放在第二排第一個問價夾的位置的 python easygui模組的問題 如果確保...

python中關於正則內的b,為什麼使用b時需要用r b,但是w則不需要??求解答

b在正則中表示單詞間隔。但由於 b在字串裡本身是個轉義,代表退格。r是得到字元本身。也就是說 b這兩個字元。因為 b 有兩種解釋,而 w 只有一種。b的兩種解釋是 b 如果前面不加r,那麼直譯器認為是轉義字元 退格鍵backspace r b 如果前面加r,那麼直譯器不會進行轉義,b 解釋為正規表示...

python中多程序協程的使用以及為什麼要用它

python裡推薦用多程序而不是多執行緒,但是多程序也有其自己的限制 相比執行緒更加笨重 切換耗時更長,並且在python的多程序下,程序數量不推薦超過cpu核心數 一個程序只有一個gil,所以一個程序只能跑滿一個cpu 因為一個程序佔用一個cpu時能充分利用機器的效能,但是程序多了就會出現頻繁的程...