Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Питон и кодировка  (Прочитано 2169 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Питон и кодировка
« Ответ #15 : 23 Марта 2015, 15:39:08 »
Явно кодировку задать?

В Python3 - все по дефолту идет в utf-8. Т.е. любая строка - есть уже уникод. Но нужно смотреть внимательно на то что возвращают функции. Допустим если файл открывается по умолчанию то read возвращает строку, но если файл открыть как бинарный - то read будет возвращать байтовый массив. Та же внимательность нужна при работе с библиотеками (в той же subprocess, при обработке возвращаемых из подпроцессов данных).

В Python2.7 - разницы между байтовой последовательностью (массивом) и символьной строкой нет. Т.е. различать эти типы (массив байт и строка, которая тоже по сути массив байт но есть еще и кодировка этой строки, благодаря которой появляется возможность обрабатывать строку посимвольно) необходимо самостоятельно.
Так вот в 2.7 надо чаще пользоваться .encode() и .decode() и самому внимательно следить за кодировкой - тот же open открывает все файлы так что они читаются как байтовые последовательности и кодировку нужно явно прописать вызвав метод .decode().
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

 

Страница сгенерирована за 0.341 секунд. Запросов: 26.