PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Encode / Décode IOS ANDROID / BASE64
Encode / Décode IOS ANDROID / BASE64
Débuté par Amy BEN, 28 déc. 2024 06:52 - 7 réponses
Membre enregistré
125 messages
Posté le 28 décembre 2024 - 06:52
Bonjour à tous ;

je suis face à un problème qui me bloque sur mon avancement, j'ai une app avec un webservice Rest
description : l'app doit envoyer des informations (en français, anglais ou arabe) et elle doit être lu par les users IOS ou ANDROID,

donc pour permettre ça (et surtout les échanges en arabe aussi), au lieu d'une saisie direct dans la bdd, j'encode en BASE64, formaté à UTF8

l'encodage au départ IOS et ANDOIRD, ne donnait pas le même résultat sur la bbd, puis aprés avoir forcer en UTF8, ça marche très bien voila le résultat :






le décodage c'est une autre histoire, voilà le code source du décodage :

dt est une chaîne = ChaîneVersUTF8(gtabListeJournalEnfant[nParam_NumEnreg].JournP_Details)
SAI_Détails = Decode(dt,encodeBASE64)


sur ANDROID, je reçois ces caractères chinois, et sur IOS c'est vide, le champ est blanc, zéro donnée,






dans l'espoir de trouver une solution rapidement, je vous remercie de partager avec moi si vous avez trouvé la solution à ce problème de mon coté je partagerai aussi la solution si je l'a trouve avant.


merci bien
Membre enregistré
3 510 messages
Posté le 28 décembre 2024 - 07:03
Salut
Si tu fais un chaîneversutf8 après avoir fait un encodé alors
Pour le décodage il faut faire un utf8verschaine et non pas l'inverse comme dans ton code,
Non !?
Membre enregistré
125 messages
Posté le 28 décembre 2024 - 07:42
Bonjour Ppoy

merci pour votre réponse, j'ai essayé, mais il affiche erreur , je en comprends pas pourquoi !






j'ai lu aussi que windev mobile, prenait en charge UTF8 nativement, et qu'il fallait juste faire le décodage, mais pareil, toujours des caractéres chinois sur ANDROID, des chaines vides sur IOS




Membre enregistré
125 messages
Posté le 28 décembre 2024 - 07:42


Membre enregistré
125 messages
Posté le 28 décembre 2024 - 07:43


Membre enregistré
125 messages
Posté le 28 décembre 2024 - 10:17
Bonjour ,

problème résolu, il faut changer la configuration par défaut des chaines




Membre enregistré
125 messages
Posté le 28 décembre 2024 - 20:34
Bonsoir ;

finalement cette configuration, en l'a modifiant marche uniquement sur android,
le soucis des caractères en chinois, c'est toujours pareil sur IOS,

- l'encodage en base64, en chaineversUTF8 fonctionnent parfaitement, sur ANDROID et IOS, nous avons la même chaine de caractères
néanmoins le décodage c'est une autre histoire, sur ANDROID c'est bon, mais sur IOS, rien n'est visible, le trace donne un texte en chinois (alors qu'il devrait afficher : Super Bien )


HELP PLEASE ;(
Membre enregistré
125 messages
Posté le 30 décembre 2024 - 00:10
Bonsoir à tous;

pour clôturer le sujet, et si quelqu'un rencontre le même problème,
voilà ce qu'il faut ajouter dans le code :

les déclarations ses chaines se font ainsi ;

msg est une chaine ANSI, et non pas seulement est une chaine

dt est une chaîne ANSI = Decode(gtabListeJR[nParam_NumEnreg].JP_Details,encodeBASE64SansRC)
SAI_Détails = dt



et les caractères chinois disparaissent, compatibilité garantie entre ANDROID et IOS, encodage base64, avec UTF8 et déclarations de chaines ANSI, ainsi que paramétrage par défaut de la configuration ANDROID sur AINSI