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...