Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码位置0-6的字符:序号不在范围内(128)

Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码位置0-6的字符:序号不在范围内(128),python,pyqt,ascii,encode,Python,Pyqt,Ascii,Encode,我已经尝试了我能找到的所有解决方案,但似乎没有任何效果: teext = str(self.tableWidget.item(row, col).text()) 顺便说一下,我是用希腊文写的…显然,self.tableWidget.item().text()返回Unicode,您需要使用解码方法: self.tableWidget.item(row, col).text().encode('utf8') 您确实希望查看,以充分了解unicode对象与其字节编码之间的差异 另一篇优秀的文章是J

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

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

顺便说一下,我是用希腊文写的…

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

self.tableWidget.item(row, col).text().encode('utf8')
您确实希望查看,以充分了解unicode对象与其字节编码之间的差异

另一篇优秀的文章是Joel Spolsky(Stack Overflow的幕后策划者之一)


用文本编码替换“utf-8”

尝试将以下代码放在开头
它完美地解决了我的问题

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

嗯,我再也不会出错了,但是当我将文本写入.xls文件时,当我打开.xls文件时,它不会显示任何内容……请阅读我在答案中包含的文章;您需要找出需要使用什么编码。teext=unicode(self.tableWidget.item(row,col.text())似乎可以解决这个问题。。。无论如何,非常感谢你的帮助。。。
import sys
reload(sys)
sys.setdefaultencoding('utf8')