在Python 2.7中使用Unicode转义时出现奇怪的工件

时间:2013-08-21 18:20:28

标签: python python-2.7 unicode

我有一些代码如下:

if temp < 244:
    return ("<-20 "+u"\u00B0"+"F")

然而,当我运行它时,我明白了:

"<-20 \xb0F"

为什么会这样?

1 个答案:

答案 0 :(得分:1)

您正在查看字符串的表示形式,而不是字符串本身。

也许这会澄清:

>>> s = "<-20 "+u"\u00B0"
>>> s
u'<-20 \xb0'
>>> type(s)
<type 'unicode'>
>>> repr(s)
"u'<-20 \\xb0'"
>>> print s
<-20 °
>>> s == u"<-20 °"
True
>>> s == u'<-20 \xb0'
True
>>> s.encode('utf-8')
'<-20 \xc2\xb0'
s.encode('latin1')
'<-20 \xb0'