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

2024-09-27 07:27:40 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我制作的一个示例程序:

>>> print u'\u1212'
ሒ
>>> print '\u1212'
\u1212
>>> print unicode('\u1212')
\u1212

当我print unicode('\u1212')时,为什么我得到\u1212而不是{}?在

我正在制作一个程序来存储数据而不是打印它,那么如何存储而不是{}?很明显我不能做这样的事情:

^{pr2}$

有趣的是,即使我这么做,我得到的是:

\u1212

我认为另一个值得一提的事实是:

>>> u'\u1212' == unicode('\u1212')
False

如何存储或其他类似的字符而不是\uxxxx?在


Tags: 数据程序false示例unicode字符事情事实
2条回答

这只是个误会。在

这是一个unicode字符串:x = u'\u1212'

当您调用print x时,它将打印其字符(),如图所示。如果您只调用x,它将显示它的repr表示:

u'\u1212'

世界上一切都很好。在

这是一个ascii字符串:y = "\u1212"

当您调用print y时,它将打印其值(\u1212),如图所示。如果您只调用x,它将显示它的repr表示:

^{pr2}$

请注意双斜杠(\\)表示斜杠正在转义。在

那么,让我们看看下面的函数调用:print unicode('\u1212')

这是一个函数调用,我们可以用变量替换字符串,因此我们将使用等价:

y = "\u1212"
print unicode(x)

但是正如上面的第二个例子,y是一个ascii字符串,在内部被管理为'\udfgdfg',它根本不是unicode字符串。所以'\\udfgdfg'的unicode表示是完全相同的。所以为什么它的行为不正确。在

'\u1212'是一个包含6个字符的ASCII字符串:\u121,和{}。在

unicode('\u1212')是一个包含6个字符的Unicode字符串:\u121,和{}

u'\u1212'是一个包含一个字符的Unicode字符串:。在

如果你想要的话,你应该在周围使用Unicode字符串。在

u'\u1212'

如果出于某种原因需要将'\u1212'转换为u'\u1212',请使用

^{pr2}$

(请注意,在python3中,字符串总是Unicode的。)

相关问题 更多 >

    热门问题