构造Unicode字符串

时间:2016-07-01 14:54:39

标签: python python-3.x python-unicode

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

我在这里缺少什么?

1 个答案:

答案 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')
'Δ'