Oui cela probablement vient des charsets utilisés. Les webservices sont basés sur de l’échange xml et donc le charset va avoir son importance. Je n’ai pas de solution directe, il faut sans doute chercher dans les forums liés à la librairie nusoap (utilisée pour les webservices dans dolibarr).
Merci de partager votre découverte ensuite, pour l’intégrer dans le module.
Si une donnée vient de l’extérieur en UTF8, il faut appliquer la fonction
$newdata=$langs->convToOutputCharset($olddata)
Ainsi elle sera converti dans le format de Dolibarr (qui peut etre iso ou utf, la fonction s’occupe de faire ou non la conversion). Dispo en 2.5 ou plus uniquement.
Une solution, même tardive vaut mieux que pas de solution du tout.
les webservices dans dolibarr utilisent une librairie GPL nusoap, qui reçoit la réponse codée en ISO…
Or depuis dolibarr 2.5 et surtout 2.6, dolibarr fonctionne en full UTF-8, donc le problème d’armantine debenait courant.
Il faut convertir les chaînes de caractères reçues des webservice en UTF-8 avant de les utiliser ou enregsitrer dans la base dolibarr. Pour cela la fonction mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] ) cf http://fr2.php.net/manual/fr/function.mb-convert-encoding.php fonctionne bien.