在使用 Python 2.7时,我想知道使用 unicode
而不是 str
类型有什么真正的优势,因为它们似乎都能够保存 Unicode 字符串。除了能够使用转义字符 \
在 unicode
字符串中设置 Unicode 代码之外,还有什么特殊的原因吗?:
执行具有以下功能的模块:
# -*- coding: utf-8 -*-
a = 'á'
ua = u'á'
print a, ua
结果出来了
使用 Python shell 进行更多测试:
>>> a = 'á'
>>> a
'\xc3\xa1'
>>> ua = u'á'
>>> ua
u'\xe1'
>>> ua.encode('utf8')
'\xc3\xa1'
>>> ua.encode('latin1')
'\xe1'
>>> ua
u'\xe1'
那么,unicode
字符串似乎是用 latin1
而不是 utf-8
编码的,而原始字符串是用 utf-8
编码的?我现在更困惑了!校对: S