Python 3 различает текст и двоичные данные . Текст гарантированно будет в Unicode, хотя, насколько я мог видеть, никакой конкретной кодировки не указано. Так что это может быть UTF-8, или UTF-16, или UTF-32¹ - но вы даже не заметите.
Суть здесь в том, что вам все равно. Если вы хотите работать с текстом, используйте текстовые строки и обращайтесь к ним по кодовой точке (которая представляет собой номер одного символа Unicode и не зависит от внутреннего UTF), что может организовать кодовые точки в несколько меньших кодов единиц ). Если вам нужны байты, используйте b""
и получите доступ к ним по байту. И если вы хотите иметь строку в последовательности байтов в определенной кодировке, вы используете .encode()
.
¹ Или даже UTF-9, если кто-то достаточно безумен, чтобы реализовать Python на PDP-10.