构建 Unicode 字符串

constructing a Unicode string

我正在尝试使用 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

我在这里错过了什么?

\uhhhh 是一个转义序列,一种在字符串文字中使用的 notation。你不能从部分构造那个符号,至少不能直接那样。

通常,您会使用 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')
'Δ'