2016-12-24 79 views
-1

试图打印度(°)符号如何添加到字符串度的符号

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) 

我尝试添加# - - 编码:UTF-8 - - 在文件顶部,但没有运气。 P.S.我试图找出谷歌,但不为我工作。

编辑: 为@Achilles说:

t = u"\u00b0" 
qp.drawText(QtCore.QPoint(50, 45), str(self.setText)+t) 

谢谢

+0

始终添加有问题的完整的错误信息(追踪) - 有信息哪行产生问题 - 'encode()'或'print'? – furas

+1

你尝试过没有'encode'吗? – furas

+0

您的第一次尝试失败是因为您要向您的字符串**添加Unicode字符,但是**指定了您想要的ASCII表示 - 这是一个错误。您的第二次尝试失败是因为您向字符串**添加了字符,但是您要求将其编码为UTF8。考虑不要告诉字符串函数要做什么。 – usr2564301

回答

2

本工程为度符号:

t = u"\u00b0" 
    qp.drawText(QtCore.QPoint(50, 45), str(self.setText)+t) 
+0

谢谢。这工作。 –

+0

快乐编码! :) – Inconnu

0

将这个线你的源

顶部
# -*- coding: utf-8 -*- 
+0

我做了,阿喀琉斯的答案正在为我工​​作。谢谢 –