您没有unipre对象,但是具有UTF-8编码文本的字节字符串。印制例如字节串到你的终端 可能 ,如果你的终端被配置为处理UTF-8文本。
当转换一个列表串,该列表的内容被示出为 表示 ;
repr()函数的结果。字符串对象的表示形式对可打印ASCII范围以外的任何字节使用转义码;
n例如,换行符被替换。您的UTF-8字节由
xhh转义序列表示。
如果您使用Unipre对象,表示将使用
xhh逃逸 仍
,但在Latin-1的范围内(外ASCII)仅Unipre代码点(其余都显示与
uhhhh和
Uhhhhhhhh逃逸取决于它们的代码点);
在打印时,Python会自动将这些值编码为适合终端的正确编码:
>>> u'université'u'universitxe9'>>> len(u'université')10>>> print u'université'université
将此与字节字符串进行比较:
>>> 'université''universitxc3xa9'>>> len('université')11>>> 'université'.depre('utf8')u'universitxe9'>>> print 'université'université
注意,长度反映了
é代码点也被编码为两个字节。顺便说一句,是我的终端
xc3xa9在将
é字符粘贴到Python会话中时向Python提供了字节,因为它已配置为使用UTF-8,并且当我定义
u'..'Unipre对象文字时,Python已检测到并解码了字节。
我强烈建议您阅读以下文章,以了解Python如何处理Unipre,以及Unipre文本和编码的字节字符串之间的区别是什么:
每个软件开发人员绝对,肯定必须绝对了解Unipre和字符集(无借口!)作者:Joel Spolsky
在Python的Unipre指南
Ned Batchelder的实用Unipre
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)