Savon - base64binary de données en PHP

J'ai un client SOAP en PHP qui permet d'appeler un fichier WSDL du service. L'une des fonctions renvoie une base64binary de données. J'ai essayé de décoder sans un peu de chance.

base64_decode($encoded_base64data) ne fonctionnera pas. J'ai essayé d'utiliser base_convert() et mv_convert_encoding() avec des paramètres différents, mais ne pouvait pas obtenir un bon résultat.

Le résultat codé des données commence avec:

��`I�%&/m�{J�J��t��`$ؐ@�������iG#)�*��eVe]f@�흼��{����{����;�N'���?\fdl��J�ɞ!���?~|?"

(données est beaucoup plus, c'est juste une petite partie de la chaîne)

Aucune idée de comment ça pourrait se faire?

Grâce

MODIFIER

J'ai étendu le SoapClient avec un nouveau __doRequest() méthode pour vérifier que les données reçues sont une bonne chaîne base64. J'ai eu une bonne chaîne encodée en base64, et le résultat ci-dessus est décodé réponse.

De toute façon, la chaîne a été décodé automatiquement par le SoapClient de base64 en binaire (comme @hakre suggéré), donc je n'ai que de traiter avec les binaires de réponse.

Maintenant j'ai besoin de décoder la chaîne binaire en quelque chose qui ressemblerait à un format lisible. La réponse finale doit contenir géorgien de sortie, donc je suis à essayer de comprendre le codage d'origine (mais c'est une autre question).

"Ne marchera pas", "divers paramètres" et "bon résultat" ne sont pas vraiment utiles. L'exacte d'entrée, le code exact utilisé, le nombre exact de sortie et la sortie que vous attendez.
base64_decode($encoded_base64data) signifie qu'il ne donnera pas une bonne chaîne de caractères (avec encodage). Cela est vrai pour toutes mes autres tentatives. Divers paramètres 'BASE64' et 'UTF-8' pour mv_convert_encoding() et certains entiers pour base_convert(). Aucun de ceux qui m'a donné une bien décodé réponse....
"code exact utilisé" serait base64_decode($encoded_base64data). Je pense que la question est assez clair déjà.
Non, la question n'est absolument pas clair, sinon je n'aurais pas demandé. Base64 n'est pas aussi avancé, et base_convert() ne sera probablement pas contenir un bug spécifique à votre situation, de sorte que le problème est dans vos données. Si vous ne montrez pas vos données et la façon de vous assurer de data == base64_decode(base64_encode(data)), cette question ne peut être répondu.
La chaîne de caractères que vous avez indiqué n'a pas l'air encodées en base64 pour moi. Chaînes codées en Base64 ont tendance à regarder un peu comme ceci: dGhpcyBzdHJpbmcgd2FzIGJhc2U2NCBlbmNvZGVk. Ils n'utilisent 64 caractères différents, (a-zA-Z0-9, et deux plus standard des caractères spécifiques) et parfois le signe égal (=) caractère de remplissage

OriginalL'auteur galchen | 2013-06-03