Bonjour a tous,
voila mon problème : J'attaque en c# un webservice distant (je ne l'ai pas développé), et je récupère des string. Seulement, les accents sont remplacés par '??'. J'ai un peu tout essayé pour traduire ces ??, avec System.Text.Encoding et autre URLDecode, mais rien n'y fait.
Le WSDL du webservice est en UTF-8.
Le problème est assez bizarre puisqu'avec les mêmes appels (sans retraitements des chaines) en Java et Delphi, les accents apparaissent correctement !
Si kkun a la solution miracle pour récupérer ces accents, je suis preneur !
ca marche toujours pas, j'ai essayé avec tous les Encoding possibles, et surtout avec ISO-8859-1 (normalement le latin ca devrait passer !) et ca change absolument rien.
Je suis même allé voir le byte-code pour ces caractères, toujours le même 63 (normal, c'est celui du ? :))
Pareil en Unicode : 003f qui correspond à '?'
Apparement la chaine de caractères que je recois ne contient pas les bons caractères, donc normal si j'arrive pas à traduire tout ca.
Y a pas un procédé interne à C# qui traduit à la volée les caractères qu'il recoit, un peu comme dans Java ? Peut être qu'il utilise des configs internes, genre celles de IE, pour se configurer tout seul (comme un grand ... ou presque)
C'est quand même bizarre que personne n'ai eu ce problème ...
Je vais essayé de faire un webservice pour voir si ca fait pareil.
4 ans après cette discussion je tombe sur le même problème, et rien a faire !!
quelle est la solution ???
car celles qu'ont données coq ou adrien ne marchent pas sur visual basic 2008 !!!
comment transformer un é venant du web en é (code 63 en 233) sans avoir besoin de réinventer la poudre ????
(genre écriture d'un switch case et conversion de tous les accents )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bonjour Fleuve,
où est-ce que l'on peut intercepter les résultats pour mettre le StreamReader? Il me semble que la classe crée par VisualStudio pour gérer le WebService remplace les caractères accentués par des "?" et donc on a plus accès au résultat d'origine :(
J'ai mis objStreamReader = New StreamReader(fic, System.Text.Encoding.GetEncoding("WINDOWS-1252")) et ça a fonctionné pour moi, ça aidera peut-être quelqu'un d'autre...