【问题标题】:how to add to string degree symbol如何添加到字符串度数符号
【发布时间】: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


【解决方案1】:

这适用于度数符号:

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

【讨论】:

  • 编码愉快! :)
【解决方案2】:

将此行放在源代码的顶部

# -*- coding: utf-8 -*-

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多