我尝试使用Python 3.x构建和打印Unicode字符串。因此,例如,以下工作正常:
a = '\u0394'
print(a)
Δ
但如果我尝试通过附加两个字符串来构造它,我有几个问题:
a = '\u'
File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \uXXXX escape
a = '\\u'
b = '0394'
c = a + b
print(c)
\u4308
我在这里缺少什么?
答案 0 :(得分:2)
\uhhhh
是一个转义序列,在字符串文字中使用符号。你不能从部分构造这种符号,至少不是那样。
通常,您可以使用chr()
function来生成整数中的单个字符:
>>> chr(int('0394', 16))
'Δ'
例如,我首先将十六进制字符串0394
解释为基数为16的整数。
如果必须生成Python字符串文字转义表示法,请将codecs.decode()
与unicode_escape
编解码器一起使用:
>>> import codecs
>>> r'\u' + '0394'
'\\u0394'
>>> codecs.decode(r'\u' + '0394', 'unicode_escape')
'Δ'