Commission Junction (CJ) で HORRIBLE Web サービスを使用しようとしています。クライアントに接続して 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% オフ」のようなレコードに到達するまでは問題なく機能します。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 758: ordinal not in range(128)" error.
SUDS が結果を読み取ったときに壊れないように、私の側で ® をエンコードする方法はありますか?
更新: 明確にするために、® は CJ データベースからのものであり、その応答にあります。SOどういうわけか、SUDSが応答を処理する前に非ASCII文字をデコードする必要があります。これが SUD でどのように行われるか (または行われるかどうか) はわかりません。