栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python str与unicode类型

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python str与unicode类型

unipre
用于处理 文本 。文本是一个 代码点 序列, 可能大于一个字节 。文本可以被 编码
在一个特定的编码来表示文本作为原始字节(例如
utf-8
latin-1
…)。

注意,这

unipre
是没有编码的 !python使用的内部表示形式是实现细节,只要它能够表示所需的代码点,您就不必在意它。

相反,

str
在Python 2中是 字节 的简单序列。它不代表文字!

您可以将其

unipre
视为某些文本的一般表示形式,可以用多种不同方式将其编码为通过表示的二进制数据序列
str

注意:在Python 3中,

unipre
已重命名为,
str
并且
bytes
为普通字节序列提供了一种新类型。

您可以看到一些差异:

>>> len(u'à')  # a single pre point1>>> len('à')   # by default utf-8 -> takes two bytes2>>> len(u'à'.enpre('utf-8'))2>>> len(u'à'.enpre('latin1'))  # in latin1 it takes one byte1>>> print u'à'.enpre('utf-8')  # terminal encoding is utf-8à>>> print u'à'.enpre('latin1') # it cannot understand the latin1 byte�

请注意,使用时,

str
可以对特定编码表示形式的单个字节进行较低级别的控制,而使用时
unipre
,只能在代码点级别进行控制。例如,您可以执行以下操作:

>>> 'àèìòù''xc3xa0xc3xa8xc3xacxc3xb2xc3xb9'>>> print 'àèìòù'.replace('xa8', '')à�ìòù

以前是有效的UTF-8,现在已经不复存在了。使用unipre字符串,您不能以结果字符串不是有效的unipre文本的方式进行操作。您可以删除代码点,将代码点替换为其他代码点等,但不能与内部表示混淆。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668611.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号