UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd' in position 1: illegal multibyte sequence 这个怎么解决?

2015-04-30 21:54:56 +08:00
 kachni

我用requests进行get之后,不论是打印*.text还是把它写入文本中都会出现这个错误提示。环境是Windows,怎么修改才行呢?

顺便说一句,用encoding改response对象的编码没有用。

7809 次点击
所在节点    Python
11 条回复
Septembers
2015-04-30 22:06:43 +08:00
veiz
2015-04-30 22:10:08 +08:00
1楼很认真,换我回答的话,就一个 BOM 字,了结。
est
2015-04-30 22:11:52 +08:00
电脑卖了换mac或者linux
nettest
2015-04-30 22:16:45 +08:00
windows gbk 编码的问题,放到linux下就没事了。
Septembers
2015-04-30 22:22:54 +08:00
@veiz 态度问题,更重要的是善用搜索
p1n3
2015-04-30 22:48:44 +08:00
我特么觉得是requests这个库的一个坑
gcc2000
2015-04-30 23:01:02 +08:00
r = requests.get(url)
print r.encoding
如果是ISO-8859-1,那么就print print r.text.encode('latin1')
楼主可以先试一下这个
bingxx
2015-05-01 00:28:36 +08:00
试试content

r = requests.get(url)
print r.content
kachni
2015-05-01 23:32:13 +08:00
@bingxx content返回的是bytes对象,重新编码为utf-8的话写入文本还是这个问题,gbk的话显示的都是乱码
bingxx
2015-05-02 01:03:28 +08:00
@kachni URL给个,我试一下。😊
kachni
2015-05-02 09:00:18 +08:00
@bingxx 百度的域名。。。stackoverflow倒是没问题

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

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

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

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

© 2021 V2EX