Communication ASCII Windows / Linux - ... je m'arrache les cheveux

Alors, le contexte de mon probleme: je programme un logiciel client/serveur, dont le client tourne sous Windows, et le serveur sous Linux. Client codé en Visual Basic 6, et serveur en Java. Ils communiquent en s’envoyant des messages XML (donc texte).

Seulement voila: du fait que le serveur soit sous Linux, il recoit mal 2 types de caracteres : les carriage returns d’une part, et certains caracteres speciaux d’autre part comme le signe “€” ou des lettres avec trémas. Je ne sais pas s’il s’agit d’un seul et unique probleme ou non. Et j’essaye plein de trucs, mais impossible de regler le probleme! Donc si vous avez des brillantes idees, je serais preneur et eternellement reconnaissant! =)

  • J’ai essaye d’encoder mon texte en unicode, mais le parseur XML cote client refuse de recuperer des strings unicode.
  • J’ai essaye de remplacer les vbCrLf par vbLf, ou par vbCr (ou… j’ai essaye a peu pret toutes les combinaisons) mais ca ne regle pas le probleme du carriage return.

J’ai une petite idee de solution, ce serait de remplacer tous les caracteres speciaux par leur equivalent en code HTML ( espace devient %20 , etc. ) mais je ne connais pas de fonction VB qui fasse cela…

faut utilisé les entités XML &truc;

Merci pour ta reponse. C’est en effet la solution que je vise, mais je ne trouve pas de fonction en VB qui traduise les caracteres speciaux en entite HTML, comme par exemple é => é

Sinon, apres investigation, il semble que mon probleme n’a rien a voir avec le fait que ce soit du Windows vers du Linux. C’est juste que VB est tres mauvais pour la creation de stream XML, apparemment VB n’aime pas UTF-8.

Bon, dans le pire des cas si personne n’arrive a m’aider, j’ecrirai moi-meme une fonction qui traduise quelques caracteres speciaux vers leur code HTML, mais c’est moyen :confused:

Au pire, tu peux traduire les caractères spéciaux en &#code caractère en hexa;

(faut voir la doc XML derrière)

Petite question sur les messages échangés :

<?xml encoding="XXX" .. ?>

Qu’est-ce que le serveur transmet en lieu et place de XXX?

Pas possible de demander au serveur d’encoder en ISO-8859-1 ?