python 中文亂碼解決方案

2022-03-15 23:58:34 字數 933 閱讀 1196

python 處理文字內容時,常常遇到編碼的問題。

漢字常用的兩種編碼方式為 utf8 和 gbk,解析乙個 txt 檔案或者乙個字串時經常會遇到編碼問題。

對於一行文字,我們分別嘗試用 utf8 或者 gbk 去解碼,哪乙個解碼內容多選擇哪乙個

def force_decode(string:bytes) ->str:

"""sometimes neither gbk nor gbk can decode succseefully from string

select longger decode result from utf8 or gbk

"""if

notisinstance(string, bytes):

raise valueerror('

expected bytes array')

decode_chars_count =

for i in ['

utf8

', '

gbk'

]:

try:

return

string.decode(i)

except

unicodedecodeerror as ex:

#neither utf8 or gbk decode successfully

#select the longer decode one

utf8_len, gbk_len =decode_chars_count

selected_encoding = '

utf8

'if utf8_len > gbk_len else

'gbk

'return string.decode(selected_encoding, errors='

ignore

')

中文亂碼解決方案

前言 亂碼問題,一直使我們頭疼的問題。今天自己有空好好研究一番。不求太深入,只求只知皮毛。考慮不夠全面,只求給您一點幫助足矣。一 簡單介紹下pageencoding與contenttype的區別 摘自網上 pageencoding 設定jsp原始檔和響應正文中的字符集編碼。contenttype 設...

MYSQL中文亂碼解決方案

mysql資料庫存在著編碼問題,主要體現在資料庫裡漢字會出現亂碼,web頁面漢字顯示不正常。歸結起來只有乙個原因 會出現編碼的地方存在編碼不一致。web開發中 mysql編碼主要會出現在五個地方 1.mysql安裝的預設編碼 latin1 在mysql.ini mysql安裝根目錄下 中設定。mys...

POST中文亂碼解決方案

以前,我都是自己編寫乙個filter,來實現編碼,如下 public class characterencodingfilter implements filter override public void dofilter servletrequest request,servletrespons...