我在 PHP 中有一个 SOAP 客户端,它调用 WSDL 服务。其中一个函数返回base64binary数据。我一直试图在没有任何运气的情况下对其进行解码。
base64_decode($encoded_base64data) 将不起作用。我尝试使用带有各种参数的 base_convert() 和 mv_convert_encoding(),但无法获得正确的结果。
编码结果数据以:
��`I�%&/m�{J�J��t��`$ؐ@�������iG#)�*��eVe]f@�흼��{����{����;�N'���?\fdl��J�ɞ!���?~|?"
(数据要长得多,这只是字符串的一小部分)
知道怎么做吗?
谢谢
编辑
我使用新的 __doRequest() 方法扩展了 SoapClient,以检查接收到的数据是否是正确的 base64 字符串。我得到了一个正确的 base64 编码字符串,上面显示的结果是解码后的响应。
无论如何,SoapClient 自动将字符串从 base64 解码为二进制(正如@hakre 建议的那样),所以我只需要处理二进制响应。
现在我需要将二进制字符串解码为看起来像可读格式的东西。最终响应应该包含格鲁吉亚语输出,所以我试图找出原始编码(但这是一个不同的问题)。