Python2未知編碼字串轉為utf 8編碼

2021-10-07 21:24:20 字數 1740 閱讀 4329

python的編碼問題總是非常煩人,一不小心就出來亂碼,本函式採用的方法為:分別用try判斷是否能解碼成功,如果能成功表明為相應編碼,解碼成功後再編碼為utf-8,**如下:

# -*- coding: utf-8 -*-

defto_utf8

(data)

:try

:# print("trying decode with utf-8 ...")

data_de = data.decode(

"utf-8"

)# print("use utf-8 decode success")

# print("trying encode with utf-8 ...")

# data = data_de.encode("utf-8")

# print("use utf-8 encode success\n")

return data

except

:# print("use utf-8 decode failed\n")

pass

try:

# print("trying decode with ascii ...")

data_de = data.decode(

"ascii"

)# print("use ascii decode success")

# print("trying encode with utf-8 ...")

data = data_de.encode(

"utf-8"

)# print("use utf-8 encode success\n")

return data

except

:# print("use ascii decode failed\n")

pass

try:

# print("trying decode with gbk ...")

data_de = data.decode(

"gbk"

)# print("use gbk decode success")

# print("trying encode with utf-8 ...")

data = data_de.encode(

"utf-8"

)# print("use utf-8 encode success\n")

return data

except

:# print("use gbk decode failed\n")

pass

try:

# print("trying decode with utf-16-le ...")

data_de = data.decode(

"utf-16-le"

)# print("use utf-16-le decode success")

# print("trying encode with utf-8 ...")

data = data_de.encode(

"utf-8"

)# print("use utf-8 encode success\n")

return data

except

:# print("use utf-16-le decode failed\n")

pass

# 如果以上幾種都不能解碼成功,返回傳過來的字串

return data

openjudge 編碼字串

總時間限制 1000ms 記憶體限制 65536kb 描述在資料壓縮中,乙個常用的方法是行程長度編碼壓縮。對於乙個待壓縮的字串,我們可以依次記錄每個字元及重複的次數。例如,待壓縮的字串為 aaabbbbcbb 壓縮結果為 a,3 b,4 c,1 b,2 這種壓縮對於相鄰資料重複較多的情況有效,如果重...

Python2字串編碼問題總結

發表於2016年 05月 29日 python2.7中的字串編碼問題的關鍵是 str其實並不是字串而是位元組串 八位二進位制資料串 而unicode字串物件才是真正的字串。所以只要弄清楚str位元組串中儲存的到底是什麼編碼格式的二進位制資料即可解決編碼問題。1,原始碼檔案 py.pyw 編碼問題。只...

編碼和解碼字串

設計乙個將字串列表編碼為字串的演算法。已經編碼的字串之後會通過網路傳送同時也會被解碼回到原始的字串列表。請實現encode和decode 樣例1 輸入 lint code love you 輸出 lint code love you 解釋 一種可能的編碼方式為 lint code love you ...