Простите, если это длинный вопрос:
Я программировал в Python около шести месяцев. Самоучитель, начиная с учебника Python, а затем SO, а затем просто используя Google для прочего.
Вот грустная часть: никто не сказал мне, что все строки должны быть Unicode. Нет, я не врежу и не делаю это, но где это учить? И большинство примеров также я просто использую byte strings
, а не Unicode strings.
, я просто просматривал и наткнулся на этот вопрос на qaru.site/info/233349/..., в котором говорится, что каждая строка в Python должна быть строка Unicode. Это в значительной степени заставило меня плакать!
Я читал, что каждая строка в Python 3.0 по умолчанию является Unicode, поэтому мои вопросы касаются 2.x:
-
Должен ли я сделать:
print u'Some text'
или простоprint 'Text'
? -
Все должно быть Unicode, значит ли это, например, у меня есть
tuple
:t = ('First', 'Second'), it should be t = (u'First', u'Second')?
Я читал, что могу сделать
from __future__ import unicode_literals
, и тогда каждая строка будет строкой Unicode, но я должен делать это и внутри контейнера? -
При чтении/записи в файл я должен использовать модуль
codecs
. Правильно? Или я должен просто использовать стандартный способ или чтение/запись иencode
илиdecode
, где это необходимо? -
Если я получаю строку от say
raw_input()
, должен ли я преобразовать ее в Unicode?
Каков общий подход к решению всех вышеперечисленных проблем в 2.x? Оператор from __future__ import unicode_literals
?
Жаль, что я такой noob, но это меняет то, что я делаю в течение долгого времени, и поэтому я смущен.