这是我制作的示例程序:
>>> print u'\u1212'
?
>>> print '\u1212'
\u1212
>>> print unicode('\u1212')
\u1212
Run Code Online (Sandbox Code Playgroud)
为什么我得到\u1212而不是?当我print unicode('\u1212')?
我正在制作一个程序来存储数据而不是打印它,所以我如何存储?而不是\u1212?现在显然我做不了类似的事情:
x = u''+unicode('\u1212')
Run Code Online (Sandbox Code Playgroud)
有趣的是,即使我这样做,这是我得到的:
\u1212
Run Code Online (Sandbox Code Playgroud)
我认为值得一提的另一个事实是:
>>> u'\u1212' == unicode('\u1212')
False
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能存储?或者其他类似的角色而不是\uxxxx?
'\u1212'是一个ASCII字符串,6个字符:\,u,1,2,1,和2.
unicode('\u1212')是Unicode字符串与6个字符:\,u,1,2,1,和2
u'\u1212'是一个带有一个字符的Unicode字符串:?.
你应该使用Unicode字符串,如果这是你想要的.
u'\u1212'
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你需要转换'\u1212'为u'\u1212',请使用
'\u1212'.decode('unicode-escape')
Run Code Online (Sandbox Code Playgroud)
(请注意,在Python 3中,字符串始终是Unicode.)