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

发布于 2024-09-04 12:16:50 字数 403 浏览 5 评论 0原文

我需要发送一条 SOAP 消息(使用 Python SUDS),其中包含以“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)

I need to send a SOAP message (with Python SUDS) with strings encoded in 'iso-8859-2'.
Does anybody know how to do it?

SUDS raises the following exception when I invoke a method on a client with parameters encoded in 'iso-8859-2':

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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜味超标? 2024-09-11 12:16:50
Text = Text.decode('iso-8859-2')

如果 Text 最初是使用 iso-8859-2 编码的 8 位字符串,那么这可能就是您所需要的。但是,如果需要将其作为 UTF-8 字符串或其他内容发送,那么您可能会想要使用

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

如果这两者都不是,那么只需使用 decode()encode() 方法以及与它们一起使用的错误处理方法: http://docs.python.org/release/2.5/lib/string-methods.html

(考虑到问题的内容,删除了我的答案中并非真正必要的大部分内容。)

Text = Text.decode('iso-8859-2')

might be all you need, if Text starts out as an 8-bit string that was encoded with iso-8859-2. If it needs to be sent as a UTF-8 string or something, however, then you'd probably want to use

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

If neither of those, then just play around with the decode() and encode() methods and the error handling methods used with them: http://docs.python.org/release/2.5/lib/string-methods.html

(Took out most of the stuff in my answer that wasn't really necessary, considering what the question states.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文