Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2007 16:09:06

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

pythonwin
попробуй убрать try except
>>> i=unicode('Текст','cp866').encode('cp866')
>>> i=i.decode('cp866')
>>> i.encode('cp1251')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "encodings/cp1251.py", line 18, in encode
UnicodeEncodeError: 'charmap' codec can't encode character u'\u2568' in position 0: character maps to <undefined>
well
меня возникла следующая проблема: когда я перехватываю вывод команды dsquery в Windows XP,
объясни что и как ты делаешь, а то мне напиример не понятно dsquery консольная утилита или приложение под вин32
это консольная программулина, которая позволяет вытянуть определенные логины из домена. Вот нечитаемое:
CN=&#732;&#165;&#162;&#231;&#165;­&#170;® ‘&#162;&#165;&#226;« ­ ?­ &#226;®«&#236;&#165;&#162;­ („®­&#161; &#225;&#225;),OU



Офлайн

#2 Июль 4, 2007 16:26:14

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

well
CN=&#732;&#165;&#162;&#231;&#165;­&#170;® ‘&#162;&#165;&#226;« ­ ?­ &#226;®«&#236;&#165;&#162;­ („®­&#161; &#225;&#225;),OU
попробуй вывести так:
print
и выложить на форуме :)



Офлайн

#3 Июль 4, 2007 17:42:04

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

pythonwin
well
CN=&#732;&#165;&#162;&#231;&#165;­&#170;® ‘&#162;&#165;&#226;« ­ ?­ &#226;®«&#236;&#165;&#162;­ („®­&#161; &#225;&#225;),OU
попробуй вывести так:
print
и выложить на форуме :)
вот:
CN=\x98\xa5\xa2\xe7\xa5\xad\xaa\xae \x91\xa2\xa5\xe2\xab\xa0\xad\xa0 \x80\xad\xa0\xe2\xae\xab\xec\xa5\xa2\xad\xa0 (\x84\xae\xad\xa1\xa0\xe1\xe1),



Офлайн

#4 Июль 4, 2007 18:30:56

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

попробуй

print i.decode('cp866').encode('cp1251').decode('cp1251')
пример:
>>> i=“CN=\x98\xa5\xa2\xe7\xa5\xad\xaa\xae \x91\xa2\xa5\xe2\xab\xa0\xad\xa0 \x80\xad\xa0\xe2\xae\xab\xec\xa5\xa2\xad\xa0 (\x84\xae\xad\xa1\xa0\xe1\xe1),”
>>> i.decode('cp866')
u'CN=\u0428\u0435\u0432\u0447\u0435\u043d\u043a\u043e \u0421\u0432\u0435\u0442\u043b\u0430\u043d\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430 (\u0414\u043e\u043d\u0431\u0430\u0441\u0441),'
>>> i.decode('cp1251')
Traceback (most recent call last):
File “<stdin>”, line 1, in ?
File “encodings/cp1251.py”, line 22, in decode
UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position 3: character maps to <undefined>
>>> i.decode('cp866').encode
<built-in method encode of unicode object at 0xb7d30338>
>>> i.decode('cp866').encode('cp1251')
'CN=\xd8\xe5\xe2\xf7\xe5\xed\xea\xee \xd1\xe2\xe5\xf2\xeb\xe0\xed\xe0 \xc0\xed\xe0\xf2\xee\xeb\xfc\xe5\xe2\xed\xe0 (\xc4\xee\xed\xe1\xe0\xf1\xf1),'
>>> i.decode('cp866').encode('cp1251').decode('cp1251')
u'CN=\u0428\u0435\u0432\u0447\u0435\u043d\u043a\u043e \u0421\u0432\u0435\u0442\u043b\u0430\u043d\u0430 \u0410\u043d\u0430\u0442\u043e\u043b\u044c\u0435\u0432\u043d\u0430 (\u0414\u043e\u043d\u0431\u0430\u0441\u0441),'
>>> print i.decode('cp866').encode('cp1251').decode('cp1251')
CN=Шевченко Светлана Анатольевна (Донбасс),
>>>



Офлайн

#5 Июль 5, 2007 03:54:12

xonix
От:
Зарегистрирован: 2006-12-31
Сообщения: 38
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

pythonwin
попробуй

print i.decode('cp866').encode('cp1251').decode('cp1251')
Так не проще ли:
>>> i="CN=\x98\xa5\xa2\xe7\xa5\xad\xaa\xae \x91\xa2\xa5\xe2\xab\xa0\xad\xa0 \x80\xad\xa0\xe2\xae\xab\xec\xa5\xa2\xad\xa0 (\x84\xae\xad\xa1\xa0\xe1\xe1),"
>>> print i.decode('cp866')
CN=Шевченко Светлана Анатольевна (Донбасс),



Офлайн

#6 Июль 5, 2007 06:31:31

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

xonix
Так не проще ли:
как я понял well нужно было данные dsquery из консоли передать в приложение Windows, если же в консоль, то можно и твой вариант.



Офлайн

#7 Авг. 14, 2007 13:44:52

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

А если такая ситуация, то как добиться корректоного отображения print'а в cmd?

# -*- coding: utf-8 -*-
s = “Я могучая стринга”
print s

пробовал

print s.decode ('cp866')
- не помогло :(



Офлайн

#8 Авг. 14, 2007 13:48:36

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

а cp1251 не помогло?



Офлайн

#9 Авг. 14, 2007 14:01:13

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

pythonwin
а cp1251 не помогло?
неа



Офлайн

#10 Авг. 14, 2007 14:02:17

well
От:
Зарегистрирован: 2006-11-20
Сообщения: 163
Репутация: +  0  -
Профиль   Отправить e-mail  

ПЕрекодировка.

well
А если такая ситуация, то как добиться корректоного отображения print'а в cmd?

# -*- coding: utf-8 -*-
s = “Я могучая стринга”
print s

пробовал
print s.decode ('cp866')
- не помогло :(
Блин, все решилось просто:

# -*- coding: utf-8 -*-
s = u“Я могучая стринга”.encode ('cp866')
print s



Отредактировано (Авг. 14, 2007 14:02:42)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version