如何将unicode类型转换为str类型?(可能不是编码或解码的问题)

时间:2015-04-23 10:52:43

标签: python unicode

我将字符串s定义为:

s='中文'

我需要将其编码为转义代码单元(\u4e2d\u6587),如下所示:

s2='\u4e2d\u6587'

我试过了:

s1=unicode(s,'cp936') 
print type(s1)

但它打印<type 'unicode'>(如果我打印s,我会<type 'str'>)。

如果重要,我正在使用Python 2.7.8。

1 个答案:

答案 0 :(得分:1)

s='中文'是Python 2中的字节字符串,因此字节字符串的编码方式不明确。它将在源文件的编码中,但缺少该信息。

然而,使用Unicode字符串进行转换非常简单:

>>> s = u'中文'
>>> type(s)
<type 'unicode'>
>>> b = s.encode('unicode_escape')
>>> b
'\\u4e2d\\u6587'
>>> type(b)
<type 'str'>
>>> print b
\u4e2d\u6587