求助为什么 linux 的编码这么难搞?

2016-06-24 03:53:13 +08:00
 nankingpython

#coding=utf-8 import re import urllib.request html = urllib.request.urlopen("http://study.163.com/").read().decode('utf-8') print(type(html)) print(html)

报错 UnicodeEncodeError: 'ascii' codec can't encode characters in position 595-599: ordinal not in range(128) 如果不出现中文可以输出,出现中文就报错, windows 就没有这个问题。 请问下如何解决? 谷歌能搜的搜了。。

2504 次点击
所在节点    问与答
9 条回复
msg7086
2016-06-24 05:49:21 +08:00
下一次记得把标题里的 linux 改成 python ……
nankingpython
2016-06-24 06:48:19 +08:00
@msg7086 忘写了。。。:P
echo1937
2016-06-24 07:02:27 +08:00
下一次改成 python 2
nankingpython
2016-06-24 07:08:50 +08:00
@echo1937 不是 python3 好点吗,默认是 utf8
hanxiV2EX
2016-06-24 08:07:03 +08:00
不是 Linux 的锅,是 pyhton
EPr2hh6LADQWqRVH
2016-06-24 08:22:47 +08:00
从网上读下来的数据属于二进制数据, Bytes, 不要预设它是文本数据,你不知道它真正的编码是啥
NxnXgpuPSfsIT
2016-06-24 08:30:56 +08:00
print(html.encode(sys.stdin.encoding, 'ignore'))
imn1
2016-06-24 10:42:23 +08:00
linux 才容易
你试试在简体 windows ,建一个韩文目录,然后用 python 以外语言去读一下?
nankingpython
2016-06-24 17:00:59 +08:00
@avastms python3 urllib2 默认的是 str 吧

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

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

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

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

© 2021 V2EX