Bug 13952 - Желательно, чтобы python использовал кодировку locale
: Желательно, чтобы python использовал кодировку locale
Status: CLOSED WONTFIX
: Sisyphus
(All bugs in Sisyphus/python-base)
: unstable
: all Linux
: P1 enhancement
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-01-09 14:51 by
Modified: 2008-07-05 11:12 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-01-09 14:51:06
Вот, в статье кратко разъяснено в контексте Zope:
http://zope3.ru/stati/faq-howto/chto-delat-esli-v-zope-problemy-s-kodirovkoi/
Должно помочь и в других случаях. Сломать ничего не должно (если только кто-то
не полагается на ascii by default).

В настоящий момент python чихать хотел на locale:
locale
LANG=ru_RU.UTF-8

1. без locale:
a='тест'
>>> a.decode()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 0: ordinal
not in range(128)
2. с locale:
a='тест'
>>> a.decode()
u'\u0442\u0435\u0441\u0442'
------- Comment #1 From 2008-01-09 18:58:38 -------
Я КАТЕГОРИЧЕСКИ ПРОТИВ ЭТОГО!!!

Чините свой софт, пусть он использует locale как положено.
------- Comment #2 From 2008-01-09 19:00:11 -------
А объяснения будут? Ты в shell code тоже setlocale делаешь в каждом скрипте? :)
------- Comment #3 From 2008-01-09 19:02:20 -------
Текущее поведение питона - документированное и одинаковое во всех
дистрибутивах.

Проблемы с кривым софтом нужно решать (приведённым в статье) методом правки 
site.py по месту, а не вхреначиванием хаков в Сизиф.

Предлагаю заWONTFIXить.
------- Comment #4 From 2008-01-09 19:08:26 -------
Не такое уж оно и одинаковое. Я понимаю, что хочется, чтобы ваш софт вел себя
одинаково на всех поддерживаемых платформах при тестировании. А кому-то
хочется,
чтобы в ALT-е, как более русскоязычном дистрибутиве, из коробки поддерживались
non-latin кодировки :)
------- Comment #5 From 2008-01-09 19:10:49 -------
А это не "из коробки поддерживаются non-latin кодировки", это "кривой софт 
случайно работает после подпирания разными костылями".

Или не работает. Или работает не так как надо, и его надо править дальше.
------- Comment #6 From 2008-01-09 19:24:18 -------
Я еще посмотрю на другие дистрибутивы. Что это сломает? То, что на non-latin
кодировку python перестанет ругаться? Это плохо?
------- Comment #7 From 2008-01-09 19:26:03 -------
Угу. Вместо падения будет неявно корёжить данные.
------- Comment #8 From 2008-01-09 19:31:06 -------
По-моему, локаль как раз для этого и создана и логично её использовать для
кодировки данных на входе. Как раз в нормальных программах используется вызов
setlocale без указания locale, какая есть, так и используется. 
------- Comment #9 From 2008-01-09 19:33:52 -------
На входе, а не внутри и где попало.
------- Comment #10 From 2008-01-09 19:34:18 -------
Предлагаю перенести дискуссию в devel@
------- Comment #11 From 2008-01-09 19:44:47 -------
Так внутри как раз, если вы уверены в ней и она отличается от кодировки locale,
и делается setlocale(конкретная). А так обычно же полагаются на то, что в
getlocale, если не ошибаюсь. А сейчас, получается, нужно в каждом скрипте
устанавливать локаль. В общем, и так и так плохо.

P.S. Давай переносить.
------- Comment #12 From 2008-07-05 11:12:29 -------
я как был против, так и остался...