|  |      1lizheming      2014-06-19 15:57:18 +08:00 测试没有问题... | 
|  |      2yhf      2014-06-19 16:11:56 +08:00 加上  import sys default_encoding = 'utf-8' if sys.getdefaultencoding() != default_encoding: reload(sys) sys.setdefaultencoding(default_encoding) | 
|  |      3yakczh OP @yhf line 14, in <module> print(table) UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 597: illegal multibyte sequence | 
|  |      6lizheming      2014-06-19 20:12:21 +08:00 @cbsw 看楼主的错误信息,终端无误了,正好前两天碰上了这个问题。 楼主的问题在于终端使用了`GBK`编码(在Windows CMD或者Sublime(其实也是调用CMD)下就是这样的),字符串是`utf-8`编码,在从`utf-8`转换到`GBK`显示的过程中,由于`utf-8`的字符集比`GBK`要大,所以存在`GBK`无法编码的情况,所以就会报此错误。解决办法就是把终端的编码方式改为`utf-8`或者GBK大字符集`GBK10830`(不确定后面那个数字打正确了,请自行搜索吧-。-)... | 
|  |      7yakczh OP 参考 http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FPython%2Ftext%2FPython3000%2FM.1236069588.l0 上面的写法 for table in tables: print(type(table.text)) sys.stdout.write(table.text.encode("utf-8")) 输出<class 'str'> sys.stdout.write(table.text.encode("utf-8")) TypeError: must be str, not bytes table.text输出是str 又提示TypeError: must be str, not bytes 好奇怪 | 
|  |      8imn1      2014-06-19 21:08:16 +08:00 table.text.decode("utf-8") | 
|  |      10imn1      2014-06-19 21:18:28 +08:00 直接 print(table.text)  有错误么? | 
|  |      11yakczh OP set PYTHONIOENCODING=utf-8 加这个管用 |