Я испытываю некоторые трудности в моем домашнем проекте, где мне нужно проанализировать SOAP-запрос.SOAP генерируется с помощью gSOAP и включает строковые параметры со специальными символами, такими как датские буквы «æøå».
gSOAP создает запросы SOAP с кодировкой UTF-8 по умолчанию, но вместо отправки специальных chatacters в необработанном формате (т. е. байты C3A6 для специального символа «æ») он посылает то, что я считаю так называемыми символьными хэш-ссылками (т. е. ¦¦).
Я не совсем понимаю, почему gSOAP делает это так, как я могувижу, что он пометил входящую полезную нагрузку как кодируемую в UTF-8 в любом случае (Content-Type: text / xml; charset = utf-8), но это помимо вопроса (я думаю).
В любом случае яугадайте, что gSOAP, вероятно, подчиняется правилам транспорта, или как?
Когда я анализирую запрос от gSOAP в python с помощью xml.dom.minidom.parseString (), я получаю значения элементов в виде объектов Unicode, что хорошо, но символссылки на хеш-коды не декодируются как коды символов UTF-8.Он удаляет ссылки на хеш-символы, но не декодирует строку впоследствии.В конце концов, у меня есть строковый объект Unicode с кодировкой UTF-8:
Так что, если строка «æble» содержится в XML, это происходит следующим образом в запросе:
"æble"
После анализа XML строка Unicode в элементе данных текстового узла DOM выглядит следующим образом:
u'\xc3\xa6ble'
Я ожидаю, что это будет выглядеть так:
u'\xe6ble'
Что я делаюнеправильно?Должен ли я удалить XML-файл SOAP перед его синтаксическим анализом, или это где-то еще, я должен искать решение, может быть, gSOAP?
Заранее спасибо.
С наилучшими пожеланиями Jakob Simon-Gaarde