A. python中文亂碼是怎麼一回事
python報錯invalid character in identifier,意思就是「標識符中的無效字元」,檢查下有沒有字元是中文的,把中文字元改成英文字元再運行就可以了。
Python的作者有意的設計限制性很強的語法,使得不好的編程習慣(例如if語句的下一行不向右縮進)都不能通過編譯。其中很重要的一項就是Python的縮進規則。
一個和其他大多數語言(如C)的區別就是,一個模塊的界限,完全是由每行的首字元在這一行的位置來決定的(而C語言是用一對花括弧{}來明確的定出模塊的邊界的,與字元的位置毫無關系)。這一點曾經引起過爭議。
因為自從C這類的語言誕生後,語言的語法含義與字元的排列方式分離開來,曾經被認為是一種程序語言的進步。不過不可否認的是,通過強制程序員們縮進(包括if,for和函數定義等所有需要使用模塊的地方),Python確實使得程序更加清晰和美觀。
(1)python如何判斷是否亂碼擴展閱讀
Python 中文編碼:
Python中默認的編碼格式是 ASCII 格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。
解決方法為只要在文件開頭加入# -*- coding: UTF-8 -*-或者# coding=utf-8就行了
注意:# coding=utf-8的=號兩邊不要空格。
實例:
(Python 2.0+)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print( "你好,世界" )
輸出結果為:
你好,世界
B. python終端輸出亂碼怎麼解決
在命令行終端上工作時,經常會碰到一個頭疼的問題就是中文亂碼。下面我們就來看一下解決python在終端輸出亂碼的解決方法。
牽涉編碼的地方一共有五處:
Python代碼文件前兩行聲明的編碼
Python代碼文件實際存儲所使用的編碼
Vim的顯示編碼
Linux系統的文件編碼
SecureCRT等終端設置的顯示編碼
嚴格來講,五碼一致的時候,如果文件沒有損壞,應該是能夠正常顯示了。
Python編碼聲明:
如果python代碼文件中包含中文,就一定要在代碼文件的前兩行(注意:一定要是前兩行)做出編碼聲明,否則python代碼默認採用ASCII保存,這樣遇到中文字元就會報錯。在代碼頭部聲明編碼的方式有三種:
# coding=<encoding name>
# -*- coding: <encoding name> -*-
# vim: set fileencoding=<encoding name>
Vim中有關編碼的選項:
在 Vim 中,有四個與編碼有關的選項,它們是:fileencodings、fileencoding、encoding 和 termencoding。
Linux系統的編碼設置:
Linux的系統編碼設置可以通過設置locale來完成,直接在命令行敲locale,然後回車,即可查看當前系統的編碼設置,與保存文件相關的設置是LC_CTYPE。
如LC_CTYPE=zh_CN.gb18030,即把系統的編碼設置成為了gb18030。
更多Python知識請關注Python自學網
C. python中文顯示亂碼,已經在開頭有了coding: utf-8
亂碼原因:
因為你的文件聲明為 utf-8,並且也應該是用 utf-8 的編碼保存的源文件。但是 windows 的本地默認編碼是 cp936,也就是 gbk 編碼,所以在控制台直接列印 utf-8 的字元串當然是亂碼了。
解決方法:
py文件用記事本打開,另存為utf-8格式即可
D. python 中文亂碼問題
記事本是用utf-8保存你下載了東西的。你下載下來的不是utf-8,保存下來中文當然就亂碼了。而gbk和utf-8里英文的編碼值都一樣,所以不受影響。
一個方法是你留意下目標頁面的charset 和 contentType,另一個方法是你復制一個目標頁面的字,放cmd里看它的編碼長度,以此來判斷它的原來編碼。
E. 如何判斷中文亂碼 python
如果頁面是GB18030編碼,而資料庫是GBK編碼,一般來說是不用轉換的。GB18030是GBK的超級。GB18030本身兼容GBK,而GB18030中的部分字元GBK中是沒有的。將GB18030字元寫入GBK的資料庫,只會丟失部分字元而已。一般網頁上不會出現罕見的字元,所以這種情況是無需處理的。
所以,請仔細核對頁面和資料庫的編碼。
即使你提供的頁面、資料庫編碼是正確的,而且一定要轉換,也應該這樣做:
s = 'GB18030字元串'
s = s.decode('GB18030') # 轉化為unicode
s = s.encode('GBK') # 轉化為GBK