Python SUDS - 发送非UTF-8编码消息的问题

0 投票
1 回答
2256 浏览
提问于 2025-04-15 23:44

我需要用Python的SUDS库发送一个SOAP消息,并且消息中的字符串要用'iso-8859-2'编码。有没有人知道怎么做?

当我用'iso-8859-2'编码的参数调用客户端的方法时,SUDS会抛出以下异常:

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
Text = Text.decode('iso-8859-2')

如果你的文本一开始是用iso-8859-2编码的8位字符串,那么这可能就是你需要的全部。如果你需要把它发送成UTF-8字符串或者其他格式,那你可能想用

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

如果这两种都不适用,那就试着用一下decode()encode()这两个方法,以及它们的错误处理方法:http://docs.python.org/release/2.5/lib/string-methods.html

(我把答案中大部分不必要的内容去掉了,因为考虑到问题的具体情况。)

撰写回答