BeautifulSoup,Python 3.3:用于字符串连接的UnicodeEncodeError

时间:2014-01-31 10:45:12

标签: python python-3.x beautifulsoup

我是一名新手Python程序员,将在Python 2.7上运行的脚本转换为Python 3.3。我已经修复了一堆问题(urllib2等),现在我陷入了这个问题:

f.write(  soup.findAll(attrs={"class":"topictitle"})[x3].string.strip(' \t\n\r')  + ',' +
                                      inx + ',' +
                                      treadid + ',' +
                                      sid + ',' +
                                      link2.get('href') 
                                      + ',' 
                                      + "http://civicfbthailand.com/forum/" 
                                      + lnk.encode('utf-8')
                                      + '\n'
                                      )

返回:

Traceback (most recent call last):
 File "civicforum.py", line 73, in <module>
   + '\n'
TypeError: Can't convert 'bytes' object to str implicitly

第73行是列出的“+'\ n'”,但我不明白为什么这个字符串不能连接,或P27和P33之间的行为差​​异。 任何启示都赞赏。

1 个答案:

答案 0 :(得分:0)

只需删除代码中.encode('utf-8')的{​​{1}}部分即可。在Python 2.8中使用lnk.encode('utf-8')方法来解决python2字符串是ASCII而Python3字符串是unicode的事实,因此不再需要那种hack ......而且不工作; - )

.encode()