python如何在计算机中存储字符串?

我相信大多数熟悉
Python的人都读过Dive Into Python 3.在第4.3章中,它说:

In Python 3, all strings are sequences of Unicode characters. There is no such thing as a Python string encoded in UTF-8, or a Python string encoded as CP-1252. “Is this string UTF-8?” is an invalid question.

不知怎的,我理解这意味着什么:字符串= Unicode集中的字符,Python可以帮助您根据不同的编码方法对字符进行编码.但是,Pythons中的字符是否仍然作为字节存储在计算机中?例如,s =’strings’,s肯定存储在我的计算机中作为字节strem’0100100101 ……’或其他什么.那么这里使用的编码方法是什么 – Python的“默认”编码方法?

谢谢!

最佳答案 Python 3区分文本和二进制数据.尽管没有指定特定的编码,但我保证文本是Unicode格式.所以它可能是UTF-8,或UTF-16,或UTF-32¹ – 但你甚至都不会注意到.

这里的要点是:你甚至不应该关心.如果要处理文本,则使用文本字符串并通过代码点访问它们(这是单个Unicode字符的编号,与内部UTF无关 – 可以在几个较小的代码单元中组织代码点).如果你想要字节,那么使用b“”并按字节访问它们.如果你想在特定编码的字节序列中有一个字符串,你可以使用.encode().

¹甚至是UTF-9,如果有人疯狂到足以在PDP-10上实现Python.

点赞