Bonjour,
J'ai un problème d'encodage qui se produit au niveau des échanges mais je n'arrive pas à déterminer à quel moment il se produit.
La situation :
Un logiciel client (que je ne maitrise pas) m'envoie des fiches xml de données en UTF8 que je dois à mon tour récupérer et remettre dans une base de données elle même en UTF8.
Je traite ces fiches en php. J'utilise la librairie nusoap et les objets domdocument pour le parsage des fichiers.
Mes modifications et tests :
Dans cette librairie j'ai modifié les fichiers nusoap.php et class.nusoap.php afin que l'encoding des réceptions et envoies soit l'UTF8.J'ai également essayé de modifier la variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var $soap_defencoding = 'UTF-8'; .... var $xml_encoding = 'UTF-8';mais rien n'y fait. Dès la réception, j'ai des problèmes d'encodage (j'enregistre dans un fichier texte ce que je reçois pour les tests).
Code : Sélectionner tout - Visualiser dans une fenêtre à part var $decode_utf8 = true;
Avec la précédente variable à false, les "é" sont des "é".
Lorsqu'elle est à true (ce qui veut dire que le contenu est converti dans le sens UTF8 -> iso si je ne m'abuse), les "é" sont corrects, en revanche les caractères spéciaux comme "€" se transforment (en "\xe2?\xac", proche de "\xe2\x82\xac" qui est le code unicode pour ce symbole).
Si quelqu'un à une idée de l'origine de ce problème ou l'a déjà rencontré..
La seule alternative que j'ai consiste à supprimer les caractères non désirés...
Partager