本文目錄一覽:
- 1、怎麼解決Python3亂碼問題
- 2、python中文顯示亂碼,已經在開頭有了coding: utf-8
- 3、python print中文亂碼問題 win10 Python2
- 4、python解決csv文件用excel打開亂碼問題
- 5、python異常亂碼如何解決
- 6、為什麼pip插件下載打開python是亂碼?
怎麼解決Python3亂碼問題
如果是Python文件用編輯器打開時出現亂碼,將編輯器調試成utf-8或者gb2312顯示。如果是運行Python文件時顯示亂碼,則修改Python文件,在文件頂部添加:#
code
=
utf-8
python中文顯示亂碼,已經在開頭有了coding: utf-8
這個問題是你操作系統的默認編碼格式和你程序的編碼格式不一致。但是所有的系統都是認可unicode編碼的,所以你在前面加u就可以正常顯示。兩種辦法,一種就是改變操作系統的默認編碼格式,比如windows,利用命令行,將其改成utf-8編碼格式;另一種就是類似在前面加u這種辦法,在py文件裡面,利用python的方法(decode,encode)將其解碼,然後編碼成window默認的gbk形式的(當然你用的其他系統的話,不一樣的,你自己上網了解一下)。
python print中文亂碼問題 win10 Python2
因為windows默認的編碼方式是GBK,python文件保存時使用了utf-8,在讀取時,python使用GBK的編碼表去解utf-8編碼的位元組碼,因為GBK與UTF-8編碼不兼容,自然出現了亂碼問題
解決方法:
1.直接使用 u’是’ 形式,指明以unicode編碼,解碼方式會以頂部 #coding定義的編碼方式,如果不寫,以操作系統當前編碼方法,建議寫上#coding,因為要讓操作系統編碼和源文件編碼經常會不一樣。推薦使用這種方式
2.輸出時指定解碼方法 print ‘是’.decode(“utf8”) ,必須和保存的編碼一致,忽略#coding的定義
3.將#coding 和保存編碼改為和操作系統一樣的編碼,就可以直接print ‘是’ 正常輸出,也不推薦,因為需要事先知道操作系統編碼,複製到其他電腦上,操作系統編碼不一樣就會出錯
#coding=gbk
print u’是’ #方法1
print ‘是’.decode(“gbk”) #方法2
print ‘是’ #方法3
注意:
#coding指明的編碼必須和保存的編碼一樣,不然1,3方法都會產生錯誤,原因也是保存編碼和讀取編碼不一致。一般IDE能夠自動根據#coding保存文件
python解決csv文件用excel打開亂碼問題
【問題】
python輸出的csv文件用excel打開,裡面的中文會變成亂碼,但用window下的記事本或mac下的numbers打開就正常顯示。
原因是python輸出的文件是utf-8編碼寫入的,excel默認以gbk方式讀取,導致亂碼發生。
【解決方法1】文件產出時encoding設置為utf-8-sig
用excel打開csv時,excel會先檢查文件的第一個字元,來了解這個文件是什麼編碼方式,如果這個字元是BOM,excel就知道用utf-8的方式打開這個文件。python自帶了處理BOM的編碼方式uft-8-sig,因此只需要在文件產出時將encoding設置為utf-8-sig。
如果文件不是由python產出的,只需要以utf-8方式讀入再以utf-8-sig方式存儲即可
【解決方法2】懶人法,適用只含簡體中文的文件
用記事本打開,點擊另存為,右下角編碼方式選擇「ANSI」,這個過程是把這個文件改成gbk編碼格式,excel就是默認用gbk方式打開的。
參考: Python寫的csv文件,如何讓 Excel 雙擊打開不亂碼? – 雲+社區 – 騰訊雲
對編碼格式一竅不通的可以閱讀以下網頁
python筆記——二進位和文件編碼_砍柴姑娘Jourosy的博客-CSDN博客
編碼方式之ASCII、ANSI、Unicode概述 – 藍海人 – 博客園
【簡單總結】:
1. 首先需要了解 字符集 和 字元編碼 兩個概念,字符集定義了字元和二進位的一一對應關係,字元編碼規定了如何將字元的編號存儲到計算機中。
2. Unicode是字符集,包含了全球文字的唯一編碼,utf-8是編碼方式,將unicode以某種方式存儲到計算機中。
3. 有些字符集和編碼是結合在一起的,稱作字符集還是編碼都無所謂,比如ASCII,GBK
4. ANSI是各個國家地區不同擴展編碼方式的總稱,互不兼容(可以看出來通用性沒有utf好)
5. 不同編碼方式在轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字元串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
python異常亂碼如何解決
如果頁面是GB18030編碼,而資料庫是GBK編碼,一般來說是不用轉換的。GB18030是GBK的超級。GB18030本身兼容GBK,而GB18030中的部分字元GBK中是沒有的。將GB18030字元寫入GBK的資料庫,只會丟失部分字元而已。一般網頁上不會出現罕見的字元,所以這種情況是無需處理的。
所以,請仔細核對頁面和資料庫的編碼。
即使你提供的頁面、資料庫編碼是正確的,而且一定要轉換,也應該這樣做:
s = ‘GB18030字元串’
s = s.decode(‘GB18030’) # 轉化為unicode
s = s.encode(‘GBK’) # 轉化為GBK
為什麼pip插件下載打開python是亂碼?
這個文件不應該用文本編輯器直接打開。打開方式不對當然就會是亂碼了。
舉個例子。你用txt文本編輯器打開一張圖片(後綴是jpg的文件)。也一樣會是亂碼。
直接用命令行安裝即可。
希望我的回答對你有幫助
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271474.html