这是我制作的一个示例程序:
>>> print u'\u1212'
ሒ
>>> print '\u1212'
\u1212
>>> print unicode('\u1212')
\u1212
当我print unicode('\u1212')
时,为什么我得到\u1212
而不是{
我正在制作一个程序来存储数据而不是打印它,那么如何存储ሒ
而不是{
有趣的是,即使我这么做,我得到的是:
\u1212
我认为另一个值得一提的事实是:
>>> u'\u1212' == unicode('\u1212')
False
如何存储ሒ
或其他类似的字符而不是\uxxxx
?在
这只是个误会。在
这是一个unicode字符串:
x = u'\u1212'
当您调用
print x
时,它将打印其字符(ሒ
),如图所示。如果您只调用x,它将显示它的repr
表示:世界上一切都很好。在
这是一个ascii字符串:
y = "\u1212"
当您调用
^{pr2}$print y
时,它将打印其值(\u1212
),如图所示。如果您只调用x,它将显示它的repr
表示:请注意双斜杠(
\\
)表示斜杠正在转义。在那么,让我们看看下面的函数调用:
print unicode('\u1212')
这是一个函数调用,我们可以用变量替换字符串,因此我们将使用等价:
但是正如上面的第二个例子,
y
是一个ascii字符串,在内部被管理为'\udfgdfg',它根本不是unicode字符串。所以'\\udfgdfg'
的unicode表示是完全相同的。所以为什么它的行为不正确。在'\u1212'
是一个包含6个字符的ASCII字符串:\
,u
,1
,2
,1
,和{unicode('\u1212')
是一个包含6个字符的Unicode字符串:\
,u
,1
,2
,1
,和{u'\u1212'
是一个包含一个字符的Unicode字符串:ሒ
。在如果你想要的话,你应该在周围使用Unicode字符串。在
如果出于某种原因需要将
^{pr2}$'\u1212'
转换为u'\u1212'
,请使用(请注意,在python3中,字符串总是Unicode的。)
相关问题 更多 >
编程相关推荐