我是一个python小白,最近在模拟微信的web协议,无聊练练,然后碰到中文乱码的问题,看文档问谷歌,弄了一天了也无果,所以请教大家。
我借助的是requests来作get、post请求,创建了一个session全程使用,我这次请求返回的是一个json,
当我打印原文(response.text)的时候中文显示如下:
36æ°ª(36Kr.com)æ¯ä¸å½é¢å
çç§ææ°åªä½ï¼æ们æ¥éææ°çäºèç½ç§ææ°é»ä»¥åæææ½åçäºèç½åä¸ä¼ä¸ã
进行json解析后(response.json())貌似已经变成unicode编码的ascii,打印的结果中文是这样的:
u'36\xe6\xb0\xaa(36Kr.com)\xe6\x98\xaf\xe4\xb8\xad\xe5\x9b\xbd\xe9\xa2\x86\xe5\x85\x88\xe7\x9a\x84\xe7\xa7\x91\xe6\x8a\x80\xe6\x96\xb0\xe5\xaa\x92\xe4\xbd\x93\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe6\x8a\xa5\xe9\x81\x93\xe6\x9c\x80\xe6\x96\xb0\xe7\x9a\x84\xe4\xba\x92\xe8\x81\x94\xe7\xbd\x91\xe7\xa7\x91\xe6\x8a\x80\xe6\x96\xb0\xe9\x97\xbb\xe4\xbb\xa5\xe5\x8f\x8a\xe6\x9c\x80\xe6\x9c\x89\xe6\xbd\x9c\xe5\x8a\x9b\xe7\x9a\x84\xe4\xba\x92\xe8\x81\x94\xe7\xbd\x91\xe5\x88\x9b\xe4\xb8\x9a\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x82'
json解析后是一个dict,当我单独打印键值的时候中文显示是:
36æ°ª(36Kr.com)æ¯ä¸å½é¢å
çç§ææ°åªä½ï¼æ们æ¥éææ°çäºèç½ç§ææ°é»ä»¥åæææ½åçäºèç½åä¸ä¼ä¸ã
{'connection': 'close', 'content-type': 'text/plain', 'content-length': '14315', 'content-encoding': 'deflate'}
我该如何正确的打印这个中文内容或者该如何与已知中文字符串比较,我的环境是
为了解决这个问题,我特地看了微信的web前端js关于那一段的请求处理,表示水平有限没发现什么。
请大家帮忙解释一下上述原因,或者给个处理中文的思路!!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.