Все символы ascii
могут быть представлены utf-8
(первые семь бит пространства). Использование исключительно utf-8
может значительно упростить string handling
. Предоставлено utf-8
не является форматом фиксированной длины и поэтому имеет определенные штрафы за производительность по отношению к ascii
, но у меня есть ощущение, что python обычно идет за pythonic
перед исполнением.Почему Python3 различает ascii и utf-8
Мой вопрос: Был ли когда-либо были решены, почему python3
реализует строки таким образом, вместо того, чтобы utf-8
исключительно? Таким образом, он не представляет его как поток бит с различными представлениями, но всегда с кодировкой utf-8
.
Я не ищу личных мнений пользователей SO, а для PEP
или расшифровки от диктатора, обращаясь к этому самому вопросу.
Python3 * does * использует кодировку utf-8 по умолчанию, поэтому я понятия не имею, что ваш вопрос действительно задает ... – wim
@wim Я попытался сделать его более понятным. Хотя он использует utf-8 по умолчанию, по-прежнему существует двоичная строка, которая может, например, приводить к неприятным ошибкам при попытке сопоставить строки. Мой вопрос: почему версия языка не была разработана таким образом, чтобы разрешить только один тип представления. –
Это * был * разработан таким образом, и одним типом представления является представление 'str'. Оба '' utf-8'' и '' ascii'' являются кодировками. Нет такой вещи, как объект utf-8 str. – wim