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

Unicode在Python内部如何表示?

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

Unicode在Python内部如何表示?

我假设您想了解CPython(标准实现)。Python 2和Python 3.0-3.2对Unipre字符使用UCS2 *或UCS4,这意味着
每个字符 将使用2个字节或4个字节。选择哪个是编译时选项。

u2049
然后根据您系统的本机字节顺序以及是否选择了UCS2或UCS4将其表示为
x49x20
or
x20x49
x49x20x00x00
or
x00x00x20x49
或or。Unipre字符串中的ASCII字符仍然每个字符使用2或4个字节。

Python
3.3使用表示字符串中所有字符所需的最紧凑形式,切换到新的内部表示形式。选择1个字节,2个字节或4个字节。ASCII和Latin-1文本每个字符仅使用1个字节,其余BMP字符需要2个字节,之后使用4个字节。

有关这些表示形式的完整介绍,请参阅PEP-393:
灵活字符串表示
形式。


*从技术上讲,UCS-2构建使用UTF-16,因为非BMP字符使用UTF-16替代每个编码为4个字节(2个UTF-16字符)。但是,Python文档仍然将此称为UCS2。

这的确会导致意外行为,例如

len()
非BMP Unipre字符串上的字符长于所包含的字符数。



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

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

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