Python 強行utf 8解碼

2021-07-22 08:14:43 字數 1219 閱讀 4183

不知道之前python能不能將一串二進位制資料強行解碼,但是我使用python3.5沒找到這個功能,就自己寫了乙個,我不是很了解字符集方面的知識,可能存在錯誤

'''

2016.7.5

強行解碼

輸入: context:二進位制資料

method:解碼的方式

輸出: 摻雜解碼結果和未解碼的資料

'''import sys

defforcedecode

(context,method = 'utf-8'):

pos = 0

maxpos = len(context)

if maxpos == 0:

print('資料長度為0')

return

none

result = ''

while pos < maxpos:

try:

##單個資料解碼

str1 = context[pos:pos+1]

result += str1.decode(method)

pos += 1

except:

try:

##兩個資料解碼

str2 = context[pos:pos+2]

result += str2.decode(method)

pos += 2

except:

try:

##三個資料解碼

str3 = context[pos:pos+3]

result += str3.decode(method)

pos += 3

except:

try:

##解碼失敗,將資料轉換為字串

result += context[pos:pos+1].hex()

pos += 1

except:

(errortype, errorvalue, errortb) = sys.exc_info()

print("forcedecode: ", errorvalue)

break

return result

if __name__ == '__main__':

context = '0030e7a4bce9879100e7a4bc99'

print(forcedecode(context,'utf-8'))

UTF8編碼 解碼

參考文件 rfc3629標準.對於任意乙個字,都可以用乙個唯一碼 unicode碼,由標準編制 表示,在應用過程中,需要對碼進行編碼.常用的編碼方式為utf 8.utf 8採用類似於ip位址分配的機制.即對於不同範圍的unicode碼,採用不同的模板進行編碼.流程概述為 2.1 查表獲取unicod...

UTF 8編碼和解碼

1.url編碼 ios中http請求遇到漢字的時候,需要轉化成utf 8,用到的方法是 nsstring encodingstring urlstring stringbyaddingpercentescapesusingencoding nsutf8stringencoding 2.url解碼 請...

python 帶BOM頭utf 8的響應解碼

介面響應編碼格式為帶bom頭utf 8。直接獲取響應的text出現亂碼。dinghanhua 2018 11 requests text與content,指定響應的encoding 亂碼解決方式 1 獲取content再用utf 8 sig decode。2 指定響應的編碼格式為utf 8 sig。...