gpt4 book ai didi

带有散列引用的 Python minidom 和 UTF-8 编码的 XML

转载 作者:太空宇宙 更新时间:2023-11-04 06:29:31 25 4
gpt4 key购买 nike

我在我的家庭项目中遇到一些困难,我需要解析 SOAP 请求。 SOAP 是使用 gSOAP 生成的,涉及带有特殊字符的字符串参数,例如丹麦字母“æøå”。

默认情况下,gSOAP 使用 UTF-8 编码构建 SOAP 请求,但不是发送原始格式的特殊字符(即特殊字符“æ”的字节 C3A6),而是发送我认为称为字符散列引用的内容(即. æ).

我不完全理解为什么 gSOAP 这样做,因为我可以看到它已经将传入的有效负载标记为 UTF-8 编码(内容类型:text/xml;charset=utf-8),但是这不是问题(我认为)。

无论如何,我猜 gSOAP 可能遵守传输规则,或者什么?

当我在 python 中使用 xml.dom.minidom.parseString() 解析来自 gSOAP 的请求时,我将元素值作为 unicode 对象,这很好,但字符散列引用未解码为 UTF-8 字符代码。它取消转义字符散列引用,但之后不解码字符串。最后我有一个 UTF-8 编码的 unicode 字符串对象:

所以如果字符串“æble”包含在 XML 中,它在请求中是这样的:

"æble"

解析 XML 后,DOM 文本节点数据成员中的 unicode 字符串如下所示:

u'\xc3\xa6ble'

我希望它看起来像这样:

u'\xe6ble'

我做错了什么?我应该在解析 SOAP XML 之前对其进行转义,还是应该在其他地方寻找解决方案,也许是 gSOAP?

提前致谢。

最好的问候 Jakob Simon-Gaarde

最佳答案

æble 实际上是 æble

解析后要得到预期的Unicode字符串u'\xe6ble',请求中的字符串应该是æble

关于带有散列引用的 Python minidom 和 UTF-8 编码的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com