UnicodeEncodeError:'ascii'编解码器不能编码位置0-6的字符:序数不在范围内(128)

时间:2012-08-08 13:26:45

标签: python pyqt ascii encode

已经尝试了我能找到的所有解决方案,但似乎没有任何效果:

teext = str(self.tableWidget.item(row, col).text())

顺便说一下,我在希腊写作......

3 个答案:

答案 0 :(得分:11)

显然,self.tableWidget.item().text()会返回Unicode,您需要使用decode方法:

self.tableWidget.item(row, col).text().encode('utf8')

您真的想要查看Python Unicode HOWTO以充分理解unicode对象与其字节编码之间的区别。

另一篇优秀的文章是The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!),作者是Joel Spolsky(Stack Overflow背后的人之一)。

答案 1 :(得分:1)

teext = self.tableWidget.item(row, col).text().decode('utf-8')

将'utf-8'替换为文字编码

答案 2 :(得分:1)

尝试在下面添加以下代码 这完全解决了我的问题

import sys
reload(sys)
sys.setdefaultencoding('utf8')