我试图在python中向QComboBox
添加前缀单位,具体取决于参数的范围。问题是,当我尝试添加“μ”时,它出现为“Î1/ 4”,这不是我想要的。
我目前使用的代码是:
def build_unit_box(self, measure):
listed = []
if measure in {'P', 'frep'}:
for pref in ['', 'k', 'M', 'G']:
listed.append(str(pref + units.get(measure)))
exec("%s" % 'self.unit_' + measure + '.addItems(listed)')
elif measure in {'W', 'lambda', 'tau'}:
for pref in ['', 'm', u'\u03bc'.encode('utf-8'), 'n']:
print pref
listed.append(str(pref + units.get(measure)))
exec("%s" % 'self.unit_' + measure + '.addItems(listed)')
如果我输入print u'\u03bc'
,则会打印正确的字符。
我该如何解决这个问题?
答案 0 :(得分:0)
我发现了问题。由于我从另一个函数复制粘贴了一些代码,我将字符转换为str
,导致编码错误。
它与以下内容完美配合:
def build_unit_box(self, measure):
listed = []
if measure in {'P', 'frep'}:
for pref in ['', 'k', 'M', 'G']:
listed.append(str(pref + units.get(measure)))
exec("%s" % 'self.unit_' + measure + '.addItems(listed)')
elif measure in {'W', 'lambda', 'tau'}:
for pref in ['', 'm', u'\u03bc', 'n']:
print pref
listed.append(unicode(pref + units.get(measure)))
exec("%s" % 'self.unit_' + measure + '.addItems(listed)')