Re: [问题] requests 捞回来的 big5 网页转成 utf8

楼主: yshihyu (yshihyu)   2016-10-23 00:14:15
https://gist.github.com/anonymous/1078f4e653de5f1f9c6e98166b750212
加上 r.encoding = r.apparent_encoding 编码确实就正常
python test.py 正常不会有乱码
但我想我内容导向ruten.html会出现错误
python test.py > ruten.html
UnicodeEncodeError: 'ascii' codec can't encode characters in position
207-210: ordinal not in range(128)
错误 google 一下是解释系统编码是 ascii 编码范围只有0~127
但我加上下面两行就可以成功导向 ruten.html
reload(sys)
sys.setdefaultencoding("utf-8")
好奇为什么导向才会出现这问题? 而我程式里面 print r.text 却能正常输出内容在终端机上?
谢谢
作者: kenduest (小州)   2016-10-23 00:39:00
一般不用改程式码,若你用 linux 这 unix-based 系统用 bash 的话执行前 export PYTHONIOENCODING=utf-8执行一下设定环境变量就可以了至于那段语法可以解决主要是python2默认使用ascii编码透过那语法后会让内部处理都转换指定为utf8python3 后续默认是走 unicode, 所以那段程式码将无法用

Links booklink

Contact Us: admin [ a t ] ucptt.com