簡體   English   中英

如何從python中的字符串解碼十六進制值

[英]How to decode hex values from a string in python

我正在嘗試解碼字符串中的十六進制值,因此最后我有了一個“可讀”字符串。

例如:

encoded_string = 'videoplayback%253Fexpire%253D1532566750%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526mt%253D1532544983%2526fvip%253D5%2526i'

每個十六進制值均以%符號表示,並且值的長度可以區分。 我嘗試的是手動解碼字符串:

encoded_string = encoded_string.replace('%253A', '\x25\x3A')
encoded_string = encoded_string.replace('%252F', '\x25\x2F')
encoded_string = encoded_string.replace('%253F', '\x25\x3F')
encoded_string = encoded_string.replace('%253D1532566750', '\x25\x3D\x15\x32\x56\x67\x50')

現在,我需要一個能夠找到十六進制值並將其解碼的函數的幫助。

感謝大伙們!

太多的工作。

>>> urllib.parse.unquote(urllib.parse.unquote(encoded_string))
'videoplayback?expire=1532566750&mime=video%2Fmp4&key=yt6&mt=1532544983&fvip=5&i'

您可以為此使用正則表達式:

re.sub(
    r'%([A-F0-9]{4,14})',
    lambda m: str(int(m.groups()[0], 16)),
    encoded_string
)

雖然我不確定您是否只想進行URL解碼?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM