У меня есть клиент SOAP на PHP, который вызывает вызовы в службе WSDL. Одна из функций возвращает данные base64binary. Я пытался декодировать его без везения.Мыло - base64 двоичные данные в PHP
base64_decode ($ encoded_base64data) не будет работать. Я попытался использовать base_convert() и mv_convert_encoding() с различными параметрами, но не смог получить правильный результат.
кодированные данные результата начинается с:
��`I�%&/m�{J�J��t��`$ؐ@�������iG#)�*��eVe][email protected]�흼��{����{����;�N'���?\fdl��J�ɞ!���?~|?"
(данные намного больше, это лишь малая часть строки)
Любая идея, как это может быть сделано?
Благодаря
EDIT
Я продлил SoapClient с помощью метода нового __doRequest(), чтобы проверить, что полученные данные надлежащим base64 строка. Я получил правильную строку с кодировкой base64, и результат, показанный выше, является декодированным ответом.
Во всяком случае, строка была автоматически расшифрована SoapClient от base64 до двоичной (как предложено @hakre), поэтому мне нужно иметь дело только с двоичным ответом.
Теперь мне нужно декодировать двоичную строку во что-то, что будет выглядеть как читаемый формат. Окончательный ответ должен содержать выход из Грузии, поэтому я пытаюсь выяснить исходную кодировку (но это другой вопрос).
«Не работает», «различные параметры» и «правильный результат» не очень полезны. Покажите точный ввод, точный код, точный вывод и ожидаемый результат. – CodeCaster
base64_decode ($ encoded_base64data) означает, что он не даст правильную строку (с ожидаемой кодировкой). Это верно для всех моих других попыток. Различные параметры: «BASE64» и «UTF-8» для mv_convert_encoding() и некоторые целые числа для base_convert(). Ни один из них не дал мне хорошо декодированного ответа .... – galchen
«Точный код» был бы base64_decode ($ encoded_base64data). Я думаю, что вопрос уже достаточно ясен. – galchen