首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中从字符串解码十六进制值

如何在python中从字符串解码十六进制值
EN

Stack Overflow用户
提问于 2018-07-26 05:52:45
回答 2查看 127关注 0票数 0

我正在尝试解码我的字符串中的十六进制值,所以在最后我有一个“可读”的字符串。

例如:

代码语言:javascript
复制
encoded_string = 'videoplayback%253Fexpire%253D1532566750%2526mime%253Dvideo%25252Fmp4%2526key%253Dyt6%2526mt%253D1532544983%2526fvip%253D5%2526i'

每个十六进制值由一个%符号表示,值的长度可以区分。我尝试的是手动解码字符串:

代码语言:javascript
复制
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')

现在我需要一个能够找到十六进制值并解码它们的函数的帮助。

谢谢你们!

EN

回答 2

Stack Overflow用户

发布于 2018-07-26 05:57:05

工作太多了。

代码语言:javascript
复制
>>> urllib.parse.unquote(urllib.parse.unquote(encoded_string))
'videoplayback?expire=1532566750&mime=video%2Fmp4&key=yt6&mt=1532544983&fvip=5&i'
票数 2
EN

Stack Overflow用户

发布于 2018-07-26 06:03:45

为此,您可以使用正则表达式:

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

虽然我不确定你是否只想做URL解码?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51528213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档