PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → [WM17] Les accents dans un fichier ini
[WM17] Les accents dans un fichier ini
Started by Majd Sabbagh, Oct., 09 2012 2:11 PM - 3 replies
Posted on October, 09 2012 - 2:11 PM
Salut,

J'ai une application où je popule ma base de données grâce à fichier ini.
Mon problème est les accents. L'android ne semble pas reconnaître les accents lors de la lecture du fichier ini. Donc... il remplace par un point d'interrogation dans un losange.

Mon affichage à l'air fou... Comment un système UNICODE peut ne pas reconnaitre les accents ?

Quelqu'un a une idée ?

Merci
Registered member
99 messages
Posted on October, 09 2012 - 3:08 PM
Bonjour,

Le fait que ce soit un système Unicode n'implique pas que magiquement il reconnaîtra les accents. Cela implique qu'il reconnaîtra les caractères qui ont été codés en Unicode...
Il n'est pas possible d'écrire "en Unicode", on utilise en réalité des sous-systèmes d'Unicode, en général UTF-8, qui est compatible avec US-ASCII ( qui ne contient pas d'accentuation ), et donc incompatible avec latin1.
En l'occurrence, si vous développez sous Windows, les fichiers sont par défaut encodés en latin1 ( ISO-8859-1 ), et les accents ( et tout le fichier ) sont donc encodés en latin1.
Pour faire simple :
En latin1, un "é" est écrit : e9.
En UTF-8, un "é" est écrit : c3a9.

Si vous tentez de faire comprendre e9 à un système Unicode, il sera perdu, car il cherchera à décoder xE9, une valeur impossible ( Tout ce qui est supérieur à 127(10) est codé sur 2 octets ), au lieu de xC3A9.
Si cette question vous intéresse : http://fr.wikipedia.org/wiki/UTF-8

Pour avoir des éclairages sur Unicode : http://fr.wikipedia.org/wiki/Unicode…

Conclusion : Il est très certainement probable que le .ini est été crée sous Windows, et nécessite d'être encodé en UTF-8. Cette opération peut se réaliser facilement grâce à Notepad++ sous Windows ( Encodage, Convertir en UTF-8 (sans BOM) ou UTF-8 ( Il y a une différence, mais je ne sais pas si WD à besoin ou non du BOM, car il sert soit à dire que le fichier est en UTF, soit à préciser pour UTF-16 entre little endian et big endian, qui change l'ordre des octets, et je n'ai pas WM pour tester. Dans l'absolu, sur un système Unicode, c'est inutile, car il assumera que c'est de l'Unicode dans tous les cas, donc "sans BOM" est l'option la plus probable)), ou Emacs sous Linux ( C-x RET r UTF-8 )

Bonne journée !

Majd Sabbagh a écrit dans le message de news <4f3fb8643d68d575a1bc0fe35b083ce7@news.pcsoft> :
Salut,

J'ai une application où je popule ma base de données grâce à fichier ini.
Mon problème est les accents. L'android ne semble pas reconnaître les accents lors de la lecture du fichier ini. Donc... il remplace par un point d'interrogation dans un losange.

Mon affichage à l'air fou... Comment un système UNICODE peut ne pas reconnaitre les accents ?

Quelqu'un a une idée ?

Merci


--
Comme je le disais à juste titre à mon ami serveur : EHLO World.
Registered member
44 messages
Popularité : +1 (1 vote)
Posted on January, 09 2020 - 11:40 PM
Bonsoir,

j'avais le même soucis.

En rajoutant un UTF8VersChaîne() lors de la lecture du .INI cela fontionne.


Cordialement
Posted on January, 13 2020 - 2:28 AM
by the way a word of advice, INI files are meant for system settings and configurations. is really a bad idea to start using it to handle data and use special characters in them. it will be equivalent to start putting accents and using special characters on the names of an SQL server Database table.... that is a big NO NO