求救,Python2.7编码问题,痛不欲生了!!

2013-08-15 20:38:20 +08:00
 zippera
简化一下程序,要打开类似这样的网页:

import urllib2

url = 'http://mlook.mobi/book/info/6248'
res = urllib2.urlopen(url)
print res.read()

乱码!!!

PS: win下Cygwin


请不要说BS、pyquery、lxml、Python3。。。请帮帮我解决这个问题,并解释,多谢了!
7919 次点击
所在节点    Python
28 条回复
infinte
2013-08-16 23:32:17 +08:00
Python2 在控制台输出用的似乎是 WriteConsoleA/WriteConsoleOutputA
不支持 unicode 的
所以死了这条心,换 py3 吧
jinfan1009
2013-08-17 15:21:29 +08:00
不是py3就能解决这样的问题哦,其实你这是读取网站的源文件,要看网站本来采用的是什么编码,不过所有的编码都可以解码程unicode,这样就是一致的!
zippera
2013-08-17 15:44:11 +08:00
@infinte py3我学过深入学习Python,好是好,但支持不够,还是要熟练2才行啊
zippera
2013-08-17 15:45:58 +08:00
@jinfan1009 这个网页本身是utf8的,程序本身也没问题,问题出在了print,出在了终端和系统。用Linux正常。
infinte
2013-08-17 18:18:27 +08:00
@zippera 用重定向呢?
换 chcp 65001 呢?
zippera
2013-08-17 18:28:43 +08:00
@infinte 我电脑直接卡死在那儿,系统可能出了问题
infinte
2013-08-17 18:32:14 +08:00
@zippera 重定向居然会卡死这不科学
cp65001 python2 似乎不支持

当然我大 nodejs 没有这类乱七八糟的问题
zippera
2013-08-17 18:37:30 +08:00
@infinte 来个nodejs的爬虫程序呗,我观摩观摩

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

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

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

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

© 2021 V2EX