请教 Python GB2312 编码字符串转回汉字

2017-08-16 08:01:43 +08:00
 flamepeak

服务器传过来的字符串是人名使用 gb2312 编码后的字符串,例如:%BB%C6%B3%C9%CE%C4,黄成文,现在我要用 Python 把这个字符串转回汉字,求教怎么办?

网上看到有这种办法:正则匹配 \%[A-F0-9]{2} 然后取出对应的 16 进制字符串,转换为相应的字符编码,再求出对应字符,最后替换原字符~

有没有更好的办法,或者大神给个函数,谢谢

3716 次点击
所在节点    Python
3 条回复
Librazy
2017-08-16 08:14:10 +08:00
urllib.parse.unquote
pimin
2017-08-16 08:22:45 +08:00
直接把%删了就好了,正什么则
flamepeak
2017-08-16 08:25:15 +08:00
@Librazy 谢谢,非常感谢。
我是这么做的:
Python2
print (urllib.unquote('%BB%C6%B3%C9%CE%C4')).decode('gbk')

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/383272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX