Bonjour à toutes et à tous,
j'ai un gros souci dans une de mes application, je tente d'identifier le problème depuis ce matin mais en vain!
j'explique mon problème:
à partir d'une application windev mobile [android], je génère un fichier xml : (dont la structure a été simplifiée qu'à titre d'exemple)
Le fichier xml généré ne contient qu'un seul noeud (Nom) que représente le nom d'un client par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 xmlClient est un xmlDocument sNomFichier est une chaîne; xmlUnNoeud est un xmlNoeud xmlUnNoeud..Nom = "Clients" Ajoute(xmlClient, xmlUnNoeud); sNomFichier="test.xml"; c est une chaîne; c=SAI_nom; xmlClient.Clients.Nom=c; //Si j'affecte directement SAI_nom au noeud "Nom" j'obtient le message d'erreur : //un élément de type champ de saisie ne peut pas être converti vers le type xmlnoeud sDossier est une chaîne; sDossier=SAI_dossier; fRepCrée(SAI_dossier); XMLSauve(xmlClient,sDossier+"/"+sNomFichier);
et voici un exemple de fichier généré :
Le fichier est correct et est lu par la suite avec une autre application (application windev sous windows) sans problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?xml version="1.0" encoding="UTF-8"?> <Clients><Nom>reda</Nom></Clients>
le problème, c'est que si le noeud "nom" contient des caractères accentués ou certains symboles, le fichier xml généré sera corrompu et lorsque je tente de le lire à partir de l'autre application windev, j'obtient le joli message suivant :
Ligne 141, Colonne 17 : Input is not proper UTF-8, indicate encoding !
Bytes: 0x92 0x73 0x20 0x45
cette erreur se produit lorsque je met par exemple "réda" dans le champs SAI_nom.
cela me semble être un problème d'encodage, mais même si je convertie la chaine c à l'aide de la fonction ChaîneVersUTF8, le problème persiste!
Bizarement, le problème apparait uniquement sous windev mobile (android).
Sous windev, et même sous le simulateur android windev mobile, le fichier généré est correctement lu.
Quelqu'un aurait un idée ?
Bien à vous.
Réda
Partager