Работа с кодировками в Python
Программирование | 11.02.2009 14:46ниже кусок текста, которым начинаются все мои скрипты.
Дефолтная кодировка там ставится только для текущего скрипта, не systemwide. Разберешься?
#!/usr/bin/env python2.5
# -*- coding: utf-8 -*-
# Конечно в нормальной жизни этих коментариев тут нет
# Загрузить кодеки и библиотеку локалей, установить дефолтную локаль
# согласно переменной окружения LC_ALL.
import locale, codecs; locale.setlocale(locale.LC_ALL, '')
# Теперь в encoding положим текущая кодировку локали.
encoding = locale.getlocale()[1]
# Если кодировка не определилась - это винды. Там полюбому UTF-8 :)
if not encoding:
encoding = "utf-8"
# Установим дефолтную локаль. Финт с ушами reload() нужен потому что
# разработчики питона дюже умные и логично удаляют функцию setdefaultencoding
# при загрузке.
# Оно в общем то логично, но я же умный.
import sys; reload(sys); sys.setdefaultencoding(encoding)
# Установили кодеки для вывода в потоки согласно распорядку.
sys.stdout = codecs.getwriter(encoding)(sys.stdout, errors = "replace")
sys.stderr = codecs.getwriter(encoding)(sys.stderr, errors = "replace")


