Как исправить проблему с Юникодом при использовании веб-службы с Python Suds

Я пытаюсь работать с УЖАСНЫМИ веб-сервисами в Commission Junction (CJ). Я могу заставить клиента подключиться и получать информацию от CJ, но их база данных, кажется, содержит кучу плохих символов, вызывающих UnicideDecodeError.

Прямо сейчас я делаю:

from suds.client import Client
wsdlLink = 'https://link-search.api.cj.com/wsdl/version2/linkSearchServiceV2.wsdl'
client = Client(wsdlLink)
result = client.service.searchLinks(developerKey='XXX', websiteId='XXX', promotionType='coupon')

Это работает нормально, пока я не назову рекорд, в котором есть что-то вроде «CorpNet® 10% Off Any Service», затем ® вызывает его поломку, и я получаю

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 758: ordinal not in range(128)" error.

Есть ли способ чтобы закодировать ® на моем конце, чтобы он не прерывался при чтении SUDS в результате?

ОБНОВЛЕНИЕ : Чтобы уточнить, знак ® исходит из базы данных CJ и находится в их ответе. ТАК как-то мне нужно декодировать символы, отличные от ascii, ДО того, как SUDS обработает ответ. Я не уверен, как (и если) это делается в SUD.

7
задан bluish 7 September 2011 в 14:21
поделиться