Python2 имеет байты и строку в виде знака без знака и юникод как UCS-2 (поэтому кодовые точки выше 65535 будут кодироваться с 2 символами (UCS2) в Python2 и только одним символом (UTF-32) в Python3)
, где и как Python неявно применяет кодирование к строкам или неявное транскодирование (преобразование)?
И каковы эти кодировки по умолчанию (т.е. подразумеваемые)?
Например, каковы кодировки:
строковых литералов?
s = "Byte string with national characters"
us = u"Unicode string with national characters"
байтовых строк при преобразовании типов в и из Unicode?
data = unicode(random_byte_string)
когда байтовые и юникодные строки записываются в / из файла или терминала?
print(open("The full text of War and Peace.txt").read())