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 年 3 月 17 日
国内很多网站都是gbk或者gb2312的编码
|
2
icedx 2015 年 3 月 18 日
你为什么要print 呢
|
3
lixia625 2015 年 3 月 18 日
`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 年 3 月 18 日
这样
#!/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 年 3 月 18 日
这样:
``` 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 年 3 月 18 日 via Android
有些网页是经过gzip压缩的,要考虑解压问题,否则就是乱码
|
8
bbking 2015 年 3 月 20 日
print乱码和console的编码有关,建议写到txt看看
|
9
x14oL 2015 年 3 月 22 日
你是在cmd里面输出的吧?
如果是,因为win下cmd是cpXXX的字符集,所以会乱码的 需要decode一下 |
10
raincen 2015 年 3 月 27 日
控制台下只能打印cp936编码,加上
import sys import io sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #... |
11
ming2281 2015 年 4 月 7 日
我一般: print(string.encode("utf-8"))
|