python在客戶端中輸出現亂碼問題

2021-07-16 14:29:26 字數 902 閱讀 7469

解決辦法: print str(html).decode("utf-8")

問題原因:

亂碼產生的原因是python在讀取時預設解碼方式是用作業系統編碼,如果和儲存時的編碼方式不一樣,就會出現亂碼

比如以下片段,檔案儲存格式是utf-8

#

coding=utf-8

print'是

'#輸出亂碼

因為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") #

方法2print'是

'#方法3

注意:#coding指明的編碼必須和儲存的編碼一樣,不然1,3方法都會產生錯誤,原因也是儲存編碼和讀取編碼不一致。一般ide能夠自動根據#coding儲存檔案

在mysql客戶端新增新的 客戶端命令

在mysql中命令分為兩大類,一類是在客戶端解析執行的,如help,quit等,另一類是在服務端解析 執行 的,如select,insert等。注 在客戶端執行的,有的也要呼叫服務端。本文主要介紹如何給mysql客戶端新增新的客戶端命令。用例 新增乙個命令 exec plan e 功能是類似於命令g...

在HP UX中設定DNS客戶端

要在hp ux v11.31 系統下設定dns客戶端,以使用內網dns伺服器。具體步驟如下 注意 按照次序進行。尤其在已經執行使用的系統中,出錯會引起宕機或鏈結中斷等嚴重問題。1 以 etc hosts 檔案為第一排序。重要的主機名等要寫在hosts中,包括本機主機名 群集中的主機名等。注意 在已經...

在psql客戶端中修改函式

ef 建立乙個新的函式。df 顯示已經建立的函式。df somefunc 顯示這個函式的詳細定義 ef somefunc 編輯這個函式,編輯儲存退出之後,要執行 g 剛才的修改才會生效。g 使剛才的修改生效。after you edit the function with ef,you need t...