Простите, если это длинный вопрос:
Я программировал в 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, но это меняет то, что я делаю в течение долгого времени, и поэтому я смущен.