LINUX.ORG.RU

[Python]Вывод UNICODE'ной строки в читаемом виде.

 


0

0

Пишу post-commit hook для местного репозитария SVN'а. По ходу вычисляю некоторую переменную, которая есть строка. При отладке, если запускаю из командной строки через sudo от имени пользователя www-data (Apache, которые раздаёт SVN), всё выводит нормально. Но вот если сделать коммит, то в письме эта переменная пишется как

?\208?\159?\208?\176?\208?\191?\208?\186?\208?\176

Никакие decode('utf-8') и encode('utf-8') не помогают. ЧЯДНТ?

★★★★★
Ответ на: комментарий от tailgunner

Версии.

>Python 2.5.2 (r252:60911, Apr 21 2008, 11:12:42)
>[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2



Ubuntu 8.04.

Camel ★★★★★
() автор топика
Ответ на: комментарий от PolarFox

Кодировка.

># codepage=UTF8

А это не то же самое что

# -*- coding: utf-8 -*-

Такая штука у меня уже есть.

Camel ★★★★★
() автор топика

Попробуй разные комбинации unicode(yourstring, "utf-8")

Хотя проблема может быть вовсе не в Питоне :) svn log отображает строку правильно?

tailgunner ★★★★★
()
Ответ на: комментарий от PolarFox

Добавил.

Добавил # codepage=UTF8, теперь не хочет видеть кириллицу в коде

$ sudo -u www-data ./post-commit /var/svn/repos/sandbox 43
File "./post-commit", line 53
SyntaxError: Non-ASCII character '\xd0' in file ./post-commit on line 53, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Camel ★★★★★
() автор топика
Ответ на: комментарий от tailgunner

Не в питоне.

>Попробуй разные комбинации unicode(yourstring, "utf-8")

А это не то же самое что encode() или decode()?

Camel ★★★★★
() автор топика
Ответ на: Не в питоне. от Camel

>> Попробуй разные комбинации unicode(yourstring, "utf-8")

> А это не то же самое что encode() или decode()?

Как выяснилось, нет. У меня, правда, была проблема с OptionParser в FC4 и Lenny, но ни одна комбинация encode/decode не срабатывала, а вот unicode() помог.

Ну и повторюсь - все эти упраженния с Питоном нужно делать после того, как svn log покажет, что мессага закодирована с ошибкой.

tailgunner ★★★★★
()

>При отладке, если запускаю из командной строки через sudo от имени пользователя www-data (Apache, которые раздаёт SVN), всё выводит нормально. Но вот если сделать коммит, то в письме эта переменная пишется как

Переменные окружения и локаль?

ale ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.