对于我的一生,我无法弄清楚。
我向请求文档流的Web服务器创建了一个简单的肥皂请求。
我收到以下答复
Transfer-Encoding chunked
#status# HTTP/1.1 200 OK
Content-Language en-US
Date Fri, 11 Dec 2018 19:45:17 GMT
X-Powered-By Servlet/3.0
Content-Type text/xml; charset=UTF-8
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<a:RetrieveCompanyResponse xmlns:a="http://somewebservice.company.morecompany.com/">
<documentStream>AF3xQEBAQEBAQEBAQEBA...</documentstream>
<a:RetrieveCompanyResponse>
</soap:Body>
</soap:Envelope>
documentStream包含的字符比显示的要多。
我了解我应该进行某种类型的base64解码,但是每次尝试获取如下所示的垃圾值时,都可以。
base64.decodestring('AF3xQEBAQEBAQEBAQEBA').decode('ISO-8859-1')
>>> ]ñ@@@@@@@@@@@@
有什么想法吗?
答案 0 :(得分:0)
好像我找到了答案。正如snakecharmerb所建议的,可能是由于它是旧文档格式。我通过进一步挖掘发现了格式。这里是一个示例代码,可以解释我的上述问题。
import base64
import codecs
tmp_str = b'AF3xQEBAQEBAQEBAQEBA'
# convert to base64 and then decode using IBM500
ascii_txt = codecs.decode(base64.b64decode(tmp_str), 'cp500')
utf8Str = ascii_txt.encode('utf-8')
print utf8Str
打印的字符串看起来像这样
)1
这里有对我有帮助的文件
https://docs.python.org/2/library/codecs.html#standard-encodings
希望这对某人有帮助。