这是我制作的一个示例程序:
>>> print u'\u1212'
ሒ
>>> print '\u1212'
\u1212
>>> print unicode('\u1212')
\u1212
为什么我在
\u1212
时得到ሒ
而不是print unicode('\u1212')
?我正在制作一个程序来存储数据而不是打印它,那么我如何存储
ሒ
而不是\u1212
?现在很明显我不能这样做:x = u''+unicode('\u1212')
有趣的是,即使我这么做了,我得到的是:
\u1212
我认为值得一提的另一个事实是:
>>> u'\u1212' == unicode('\u1212')
False
如何存储
ሒ
或其他类似字符而不是\uxxxx
? 最佳答案
'\u1212'
是一个包含6个字符的ASCII字符串:\
,u
,1
,2
,1
和2
。unicode('\u1212')
是包含6个字符的Unicode字符串:\
、u
、1
、2
、1
、2
和u'\u1212'
ሒ
是具有一个字符的Unicode字符串:'\u1212'
。
如果你想的话,你应该在四周使用Unicode字符串。
u'\u1212'
如果出于某种原因需要将
u'\u1212'
转换为,请使用'\u1212'.decode('unicode-escape')
(注意,在Python 3中,字符串总是Unicode格式的。)