【发布时间】:2016-12-24 10:34:36
【问题描述】:
尝试打印度数(°)符号
t = chr(176).encode('ascii')
qp.drawText(QtCore.QPoint(50, 45), str(self.setText))
print t
但出现错误
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal not in range(128)
我尝试在文件顶部添加 # -- coding: utf-8 -- 但没有成功。 附言我试图在谷歌上找到但不适合我。
编辑: 正如@Achilles 所说:
t = u"\u00b0"
qp.drawText(QtCore.QPoint(50, 45), str(self.setText)+t)
谢谢
【问题讨论】:
-
总是在问题中添加完整的错误消息(回溯) - 有信息是哪一行出现问题 -
encode()或print? -
你试过没有
encode吗? -
您的第一次尝试失败,因为您正在向字符串添加 Unicode 字符但是指定您想要它的 ASCII 表示 - 这是一个错误。您的第二次尝试失败,因为您在字符串中添加了一个字符但您要求将其编码为 UTF8。考虑不要试图告诉字符串函数该做什么。
-
@Rad Lexus 谢谢你的解释!
标签: python python-2.7 pyqt pyqt4