Python и Unicode: как все должно быть Unicode

Простите, если это длинный вопрос:

Я программировал на Python около шести месяцев. Самоучка, начиная с учебника по Python, затем с SO, а затем просто с помощью Google для всего прочего.

Вот печальная часть: никто не сказал мне, что все строки должны быть в Unicode. Нет, я не лгу и не выдумываю это, но где об этом упоминается в руководстве? И в большинстве примеров я также вижу просто использование байтовых строк вместо строк Unicode. Я просто просматривал и наткнулся на этот вопрос на SO , в котором говорится, как каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

Я читал, что каждая строка в Python 3.0 по умолчанию является Unicode, поэтому мои вопросы относятся к 2.x:

  1. Должен ли я сделать:

    print u 'Some text' или просто распечатать начиная с учебника по Python, затем с SO, а затем просто с помощью Google

    Вот печальная часть: никто не сказал мне, что все строки должны быть в Unicode. Нет, я не лгу и не выдумываю это, но где об этом упоминается в руководстве? И в большинстве примеров я также вижу просто использование байтовых строк вместо строк Unicode. Я просто просматривал и наткнулся на этот вопрос на SO , в котором говорится, как каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

    Я читал, что каждая строка в Python 3.0 по умолчанию - Unicode, поэтому мои вопросы касаются 2.x:

    1. Должен ли я сделать:

      print u 'Some text' или просто распечатать начиная с учебника по Python, затем с SO, а затем просто с помощью Google

      Вот печальная часть: никто не сказал мне, что все строки должны быть в Unicode. Нет, я не лгу и не выдумываю это, но где об этом упоминается в руководстве? И в большинстве примеров я также вижу просто использование байтовых строк вместо строк Unicode. Я просто просматривал и наткнулся на этот вопрос на SO , в котором говорится, как каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

      Я читал, что каждая строка в Python 3.0 по умолчанию - Unicode, поэтому мои вопросы касаются 2.x:

      1. Должен ли я сделать:

        print u 'Some text' или просто распечатать Я не лгу и не выдумываю это, но где об этом упоминается в руководстве? И в большинстве примеров я также вижу просто использование байтовых строк вместо строк Unicode. Я просто просматривал и наткнулся на этот вопрос на SO , в котором говорится, как каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

        Я читал, что каждая строка в Python 3.0 по умолчанию является Unicode, поэтому мои вопросы относятся к 2.x:

        1. Должен ли я сделать:

          print u 'Some text' или просто распечатать Я не лгу и не выдумываю это, но где об этом упоминается в руководстве? И в большинстве примеров я также вижу просто использование байтовых строк вместо строк Unicode. Я просто просматривал и наткнулся на этот вопрос на SO , в котором говорится, как каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

          Я читал, что каждая строка в Python 3.0 по умолчанию является Unicode, поэтому мои вопросы относятся к 2.x:

          1. Должен ли я сделать:

            print u 'Some text' или просто распечатать который говорит, что каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

            Я читал, что каждая строка в Python 3.0 по умолчанию является Unicode, поэтому мои вопросы относятся к 2.x:

            1. Должен ли я сделать:

              print u 'Some text' или просто распечатать который говорит, что каждая строка в Python должна быть строкой Unicode. Это в значительной степени заставило меня плакать!

              Я читал, что каждая строка в Python 3.0 по умолчанию является Unicode, поэтому мои вопросы относятся к 2.x:

              1. Должен ли я сделать:

                print u 'Some text' или просто распечатать "Текст" ?

              2. Все должно быть в Юникоде, значит ли это, например, у меня есть кортеж :

                t = ('Первый', 'Второй'), он должен быть t = (u'First ', u'Second')?

                Я читал, что могу сделать из __future__ import unicode_literals , и тогда каждая строка будет строкой Unicode, но я должен сделать это внутри контейнер тоже?

              3. При чтении / записи в файл я должен использовать модуль codecs . Правильно? Или мне следует использовать стандартный способ или чтение / запись и кодирование или декодирование , где это необходимо?

              4. Если я получаю строку, скажем, из raw_input () , должен ли я также преобразовать ее в Unicode?

              Каков общий подход к решению всех вышеперечисленных проблем в 2. Икс? Оператор from __future__ import unicode_literals ?

              Извините за то, что я такой новичок, но это меняет то, что я делал в течение долгого времени, и так очевидно, что я запутался.

22
задан Community 23 May 2017 в 12:00
поделиться