Putsli
Июль 13, 2011 18:22:18
Выводит весь сертификат, в полях “subject” и “DirName” utf-ные кракозябры.
Эти поля в сертификате в utf-е.
Putsli
Июль 13, 2011 18:24:44
Непонятно почему “print cert.get_subject().CN” отрабатывает нормально.
Если сделать так: “print cert.get_subject()”, то тоже кракозябры в консоле.
s0rg
Июль 13, 2011 18:26:12
Очень странно - если у вас Ubuntu (в которой по-умолчанию язык вывода UTF8) - то все должно отображаться правильно. Может это не utf?
А cp1251 например?
Можете дать файл?
Putsli
Июль 13, 2011 19:15:23
Кинул в личку.
s0rg
Июль 13, 2011 19:35:04
print cert.get_ext('subjectAltName').get_value().decode('string-escape')Вот так надо )
Putsli
Июль 13, 2011 19:50:48
ААА, огромное спасибо, а можете пояснить как-нибудь, на будущее.
s0rg
Июль 13, 2011 19:59:37
Просто я не обратил внимание на ‘\x’ в начале символов, обычный уникод начинался бы с ‘\u’, значит строка - escape-кодирована, если открыть файлик как текст - строки читабельны (у меня также линукс) значит это просто декодируем esc-последовательности и вуаля! :)
Подробнее о кодировках тут:
http://docs.python.org/library/codecs.html