我使用信用卡处理公司提供的Python SDK来访问信用卡交易。除非我点击包含外国(例如,重音)字符的客户地址,否则一切正常。在这种情况下,根据我的操作,脚本会崩溃或输出乱码文本。
例如,以下几行......
print u'\u0420\u043e\u0441\u0441\u0438\u044f'
print unicode(billTo.address)
print billTo.address.__class__
产率:
Россия
Nollekensweg�32
输入'lxml.objectify.StringElement'
请注意,第一行显示可以正确打印unicode。第二行说明了乱码地址,其中“32”之前的三个字符可能应该是单个重音或特殊字符。第三行显示billTo.address是什么类型的对象。
另外,如果我尝试使用“print billTo.address”而不是“print unicode(billTo.address)”,程序会抛出错误。
我需要做些什么来正确检索和打印billTo.address的内容?请注意,我无法控制我所使用的软件放入该对象的内容。
编辑:添加回溯:
`Traceback (most recent call last):
File "get_transaction_details.py", line 352, in <module>
download_transaction_details('8386560251')
File "get_transaction_details.py", line 237, in download_transaction_details
print billTo.address
UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-15: ordinal not in range(128)`