Tôi đang cố gắng làm việc với các dịch vụ web HORRIBLE tại Commission Junction (CJ). Tôi có thể yêu cầu khách hàng kết nối và nhận thông tin từ CJ, nhưng cơ sở dữ liệu của họ dường như bao gồm một loạt các ký tự xấu gây ra một UnicideDecodeError.Cách khắc phục sự cố unicode khi sử dụng dịch vụ web với Python Suds
Ngay bây giờ tôi đang làm:
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')
này hoạt động tốt cho đến khi tôi đạt mức kỷ lục mà có cái gì đó như 'CorpNet® Giảm 10% Dịch vụ Bất kỳ' thì ® gây ra nó để phá vỡ và tôi nhận được
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 758: ordinal not in range(128)" error.
Có cách nào để mã hóa ® trên đầu của tôi để nó không bị vỡ khi SUDS đọc trong kết quả không?
CẬP NHẬT: Để làm rõ, ® đến từ cơ sở dữ liệu CJ và phản hồi của chúng. SO bằng cách nào đó tôi cần giải mã các ký tự không phải ascii TRƯỚC KHI SUDS giao dịch với câu trả lời. Tôi không chắc chắn làm thế nào (hoặc nếu) điều này được thực hiện trong SUDs.
đảm bảo rằng bạn không kết hợp các đối tượng 'str' và' unicode', ví dụ: 'u'a '+' ®'' sẽ gây ra lỗi. Giải mã đầu vào thành Unicode càng sớm càng tốt. – jfs