【问题标题】:How to convert encoded unicode string to native string in Python [duplicate]如何在 Python 中将编码的 unicode 字符串转换为本机字符串 [重复]
【发布时间】:2023-01-01 01:34:57
【问题描述】:

如何转换如下所示的字符串:

s1 = u'MDcxNTFjZWU5MzQ2MTRjZmZiOWIyNTBhYjJlZDhkODY0OTEyYmE2Yjp7ImFjdHVhbF9jcmVhdGVkX3RpbWVzdGFtcCI6ICIxNjcyNDg5NjAxLjMyOTg5MyIsICJhY3R1YWxfaWQiOiAiYWhGa1pYWi1ibWxuYUhSc2IyOXdMVzVsZDNJakN4SWJibWxuYUhSc2IyOXdYMUpsYzJWeWRtRjBhVzl1UVdOMGRXRnNHTUc3QVF3In0%3D'

到一个看起来像这样的字符串

s2 = u'MDcxNTFjZWU5MzQ2MTRjZmZiOWIyNTBhYjJlZDhkODY0OTEyYmE2Yjp7ImFjdHVhbF9jcmVhdGVkX3RpbWVzdGFtcCI6ICIxNjcyNDg5NjAxLjMyOTg5MyIsICJhY3R1YWxfaWQiOiAiYWhGa1pYWi1ibWxuYUhSc2IyOXdMVzVsZDNJakN4SWJibWxuYUhSc2IyOXdYMUpsYzJWeWRtRjBhVzl1UVdOMGRXRnNHTUc3QVF3In0='

请注意,s1%3D 结尾,这是 = 的 unicode 表示

我试过使用 .decode 函数,但这似乎不起作用。

【问题讨论】:

  • %3D不是= 的 unicode 表示。这就是所谓的 url 转义。

标签: python python-3.x python-2.7


【解决方案1】:

这与 Unicode 编码无关(“Unicode 字符串”与现代 Python 中的“本机字符串”是一回事;您所想的是 bytesstr),它与 URL 编码有关。使用urllib.parse.unquote

>>> import urllib.parse
>>> urllib.parse.unquote('MDcxNTFjZWU5MzQ2MTRjZmZiOWIyNTBhYjJlZDhkODY0OTEyYmE2Yjp7ImFjdHVhbF9jcmVhdGVkX3RpbWVzdGFtcCI6ICIxNjcyNDg5NjAxLjMyOTg5MyIsICJhY3R1YWxfaWQiOiAiYWhGa1pYWi1ibWxuYUhSc2IyOXdMVzVsZDNJakN4SWJibWxuYUhSc2IyOXdYMUpsYzJWeWRtRjBhVzl1UVdOMGRXRnNHTUc3QVF3In0%3D')
'MDcxNTFjZWU5MzQ2MTRjZmZiOWIyNTBhYjJlZDhkODY0OTEyYmE2Yjp7ImFjdHVhbF9jcmVhdGVkX3RpbWVzdGFtcCI6ICIxNjcyNDg5NjAxLjMyOTg5MyIsICJhY3R1YWxfaWQiOiAiYWhGa1pYWi1ibWxuYUhSc2IyOXdMVzVsZDNJakN4SWJibWxuYUhSc2IyOXdYMUpsYzJWeWRtRjBhVzl1UVdOMGRXRnNHTUc3QVF3In0='

【讨论】:

  • 啊,我明白了。这样可行。谢谢你。
猜你喜欢
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 2014-01-29
  • 2016-02-25
  • 1970-01-01
相关资源
最近更新 更多