decode 后编码乱了

本来是

%C3%A5%C2%88%C2%86%C3%A5%C2%A4%C2%A7%C3%A8%C2%83%C2%9C%C3%A5%C2%88%C2%86%C3%A6%C2%B4%C2%92

decode 转完就是

分大胜分洒
阅读 3.9k
2 个回答

这个跟url encode时的字符编码和你url decode时的字符编码有关。
举个例子,如果是一个不在gb2312字符范围内的字符串,你用gb2312字符集encode,然后decode的时候,不管你是用gb2312字符集还是utf-8字符集都无法恢复。

不知道原来的编码是什么。但是我是用utf-8解码,得到了‘分大胜分洒’,这个诡异的字符串

我是用的方法是先用urllib2.unquote(),解码,然后使用utf-8解码
如下>>>a='%.....................%'#你的
>>>b=urllib2.unquote(a)
>>>c=''.join([chr(ord(i)) for i in b.decode('utf-8')])
>>>print c
这里有一个相关的讨论,见http://www.douban.com/group/topic/349...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进