我一直在阅读有关python Unicode编码等的大量内容,我认为现在对它有一些了解。最后一件事仍然存在。
以下是我的看法
在python 2.x中,str对象将字符串表示为字节,根据这些字节的编码,我们可以得到不同的字符。这是我所知道的简化,但对于这个问题并不重要。
然而,我被告知unicode对象将字符串表示为unicode代码点,所以基本上是整数。不再像以前那样模糊地将字节解释为它们的值。
我的问题是这些Unicode代码点/整数如何在python中引用,它们只是4个字节的数字。这是否意味着他们比str对手使用更多的空间。并不是说我担心这个空间,我只想了解。
答案 0 :(得分:3)
在3.3之前的CPython中,unicode
对象中的文本数据被编码为UCS-2或UCS-4(取决于编译时选项)并存储在char*
中。 3.3对unicode
数据使用variable representation,具体取决于字符串中的最高代码点。 Jython和IronPython将其原生类型用于unicode
存储。