Почему в Python 3 используются разные представления строк, ориентированные на байты? Не будет ли достаточно иметь одно представление вместо нескольких?
Для печати номера диапазона ASCII строка показывает последовательность, начинающуюся с \x
:
In [56]: chr(128)
Out[56]: '\x80'
В другом диапазоне чисел Python использует последовательность, начинающуюся с \u
.
In [57]: chr(57344)
Out[57]: '\ue000'
Но числа в самом высоком диапазоне, то есть максимальное число Unicode на данный момент, используют начальный \U
:
In [58]: chr(1114111)
Out[58]: '\U0010ffff'