Почему внутренний формат Python Unicode реализован так, как описано в PEP 100? - PullRequest
4 голосов
/ 06 ноября 2011

http://www.python.org/dev/peps/pep-0100/

PEP 100 заявляет, что внутренний формат, Python Unicode, содержит кодировки UTF-16, но адресует значения как UCS-2 (или UCS-4, когда компилируется с флагом --enable-unicode=ucs4).

Почему не был выбран UTF-16 (формат переменной длины), а не UCS-2 (фиксированная длина)?

Хотя эти два кодирования в значительной степени совпадают, UTF-16 было уже 4 года, когда был опубликован PEP-100 (2000 марта).Был ли Python Unicode предназначен для решения проблем обратной совместимости?

Мне действительно просто интересно, почему внутренний формат Python был реализован с использованием этого (на первый взгляд) гибридного подхода для внутреннего хранения закодированных данных?

AЛучшим способом задать мой вопрос может быть: есть ли у кого-нибудь цитата или ссылка с цитатой из официального документа, в котором конкретно указано, почему PEP 100 решил рассматривать UTF-16 как UCS-2 вместо использования UTF-16?

1 Ответ

1 голос
/ 06 ноября 2011

Продолжите читать немного дальше: «UCS-2 и UTF-16 одинаковы для всех определенных в настоящее время символьных точек Unicode» ... и это было верно в 2000 году, когда был написан PEP.Первоначальная реализация охватывала только BMP (первые 64K кодовых точек).

...