u'string'和unicode(字符串)之间的区别

Ans*_*shi 3 python unicode

这是我制作的示例程序:

>>> 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

Pau*_*per 6

'\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.)