import sys
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding)
import requests
r = requests.get("http://court.gov.cn/zgcpwsw/bt/xjscjsbtdseszjrmfy/wlmqkqrmfy/ms/201503/t20150313_6914630.htm")
print r.text.encode('utf-8')
这样输出的中文为乱码,试了网上的各种办法都没用。求问各位大大应该怎么解决。。。
1
yangqi 2015-03-17 23:58:44 +08:00
国内很多网站都是gbk或者gb2312的编码
|
2
icedx 2015-03-18 00:04:58 +08:00
你为什么要print 呢
|
3
lixia625 2015-03-18 00:09:04 +08:00
`import urllib
r = urllib.urlopen("http://court.gov.cn/zgcpwsw/bt/xjscjsbtdseszjrmfy/wlmqkqrmfy/ms/201503/t20150313_6914630.htm") print r.read().encode('utf-8') ` 亲测不乱码 |
4
lerry 2015-03-18 00:31:28 +08:00
这样
#!/usr/bin/python # coding: utf-8 import requests r = requests.get("http://court.gov.cn/zgcpwsw/bt/xjscjsbtdseszjrmfy/wlmqkqrmfy/ms/201503/t20150313_6914630.htm") print r.content 或者 #!/usr/bin/python # coding: utf-8 import requests r = requests.get("http://court.gov.cn/zgcpwsw/bt/xjscjsbtdseszjrmfy/wlmqkqrmfy/ms/201503/t20150313_6914630.htm") r.encoding = "utf-8" print r.text.encode('utf-8') r.content 是网页原始编码,r.text 是decode后的内容,这个网页是utf-8编码,可以直接print r.encoding = "utf-8" 手工设置编码,这样text会使用你设置的编码decode 另外,楼主开头几行改变默认编码是不建议的写法 |
6
ericls 2015-03-18 04:20:49 +08:00
这样:
``` import requests r = requests.get("http://court.gov.cn/zgcpwsw/bt/xjscjsbtdseszjrmfy/wlmqkqrmfy/ms/201503/t20150313_6914630.htm") r.encoding = 'utf-8' print r.text ``` |
7
em70 2015-03-18 05:08:31 +08:00 via Android
有些网页是经过gzip压缩的,要考虑解压问题,否则就是乱码
|
8
bbking 2015-03-20 20:04:32 +08:00
print乱码和console的编码有关,建议写到txt看看
|
9
x14oL 2015-03-22 03:00:41 +08:00
你是在cmd里面输出的吧?
如果是,因为win下cmd是cpXXX的字符集,所以会乱码的 需要decode一下 |
10
raincen 2015-03-27 15:18:25 +08:00
控制台下只能打印cp936编码,加上
import sys import io sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #... |
11
ming2281 2015-04-07 00:22:11 +08:00
我一般: print(string.encode("utf-8"))
|