如何在Python中使用字符串格式与显式字符转义码?

时间:2014-02-15 16:30:14

标签: python string unicode format

我知道我可以打印以下内容:

print u'\u2550'

如何使用.format字符串方法执行此操作?例如:

for i in range(0x2550, 0x257F):
    s = u'\u{04X}'.format(i) # of course this is a syntax error

1 个答案:

答案 0 :(得分:1)

您正在寻找unichr() function

s = u'{}'.format(unichr(i))

或只是简单

s = unichr(i)

unichr(integer)为给定的代码点生成一个unicode字符。

\uxxxx语法仅适用于字符串文字;这些是在运行代码之前由Python编译器处理的。

演示:

>>> for i in range(0x2550, 0x257F):
...     print unichr(i)
... 
═
║
╒
╓
╔
╕
╖
# etc.

如果您的字符串中有文字\uxxxx序列,您仍然可以使用unicode_escape编解码器将Python转换为Unicode字符:

>>> print u'\\u2550'
\u2550
>>> print u'\\u2550'.decode('unicode_escape')
═
>>> print '\\u2550'.decode('unicode_escape')
═
>>> '\\u2550'.decode('unicode_escape')
u'\u2550'

在Python 2中,您可以在字节字符串和unicode字符串值上使用此编解码器;输出始终为unicode字符串。