Python SUDS - проблема с отправкой сообщения, закодированного не в UTF-8 - PullRequest
0 голосов
/ 09 июня 2010

Мне нужно отправить сообщение SOAP (с Python SUDS) со строками, закодированными в 'iso-8859-2'.Кто-нибудь знает, как это сделать?

SUDS вызывает следующее исключение при вызове метода на клиенте с параметрами, закодированными в 'iso-8859-2':

File "/home/bartek/myenv/lib/python2.5/site-packages/suds/sax/text.py", line 43, in __new__
   result = super(Text, cls).__new__(cls, *args, **kwargs)

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 10: ordinal not in range(128)

1 Ответ

0 голосов
/ 09 июня 2010
Text = Text.decode('iso-8859-2')

может быть все, что вам нужно, если текст начинается как 8-битная строка, которая была закодирована с iso-8859-2. Однако, если его нужно отправить в виде строки UTF-8 или чего-то еще, вы, вероятно, захотите использовать

Text = Text.decode('utf-8')

Если ни того, ни другого, просто поиграйтесь с методами decode() и encode() и методами обработки ошибок, используемыми с ними: http://docs.python.org/release/2.5/lib/string-methods.html

(В моем ответе было взято большинство вещей, которые в действительности не были нужны, учитывая то, что говорится в вопросе.)

...