Problème de caractère unicode avec la lecture ini

Vous voulez de l'aide ? Postez ici :)
Post Reply
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Problème de caractère unicode avec la lecture ini

Post by Sergent-Quentin »

Bonjour,

Lorsque qu'on écrit une phrase dans un fichier ini du genre :

"Téléphone, N°54, Voilà ma phrase"

Et qu'on la lit avec "Lecture ini" ou "Lecture ini au format code" on obtient ceci :
Unicode.jpg
Unicode.jpg (7.22 KiB) Viewed 1652 times
J'utilise une solution temporaire pour ceux qui en aurait besoin, quand j'écris l'annonce :

Code: Select all

Description = Description.replace(/é/g, "E01");
Description = Description.replace(/è/g, "E02");
Description = Description.replace(/à/g, "A01");
Description = Description.replace(/°/g, "O01");
Quand je la lis :

Code: Select all

function Lecture_Annonce_Ini() { // Lit l'annonce dans le fichier ini
ini = new IniFile();
ini.load(Dossier+'/Annonces-Compte.ini');
ini.setSection(Titre);
Section = ini.keyValue("Livre");
Description = ini.keyValue("Description");
Description = Description.replace(/\\n/g, "\n");
Description = Description.replace(/E01/g, "é");
Description = Description.replace(/E02/g, "è");
Description = Description.replace(/A01/g, "à");
Description = Description.replace(/O01/g, "°");
}
Comme vous pouvez le voir, c'est un procédé simple qui écrit les caractères en leur donnant un "identifiant" et la lecture convertis ces "identifiants".

Toutefois, Il n''y aurait-il pas un code qui permettrai de corriger cela, histoire que ça soit coder un peu plus proprement ? ^^

Je vous remercie pour vos réponses

Cordialement

Sergent-Quentin
francois
Posts: 460
Joined: 18 Oct 2010, 10:33
Location: France

Re: Problème de caractère unicode avec la lecture ini

Post by francois »

Bonjour,

Voir : http://www.developpez.net/forums/d80916 ... e-utf-8-a/

Pour ton besoin :

Code: Select all

a2 = "&é'(-è_ç"
utf8_vers_latin= decodeURIComponent(escape(a2))
Console.print(utf8_vers_latin)
Francois
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Problème de caractère unicode avec la lecture ini

Post by Sergent-Quentin »

Salut,

Merci pour ta réponse et ton lien, malgré ton code je ne suis pas arrivé à résoudre mon problème, comment dois-je l'écrire dans mon code ?

Remarque : Pour écrire dans mon fichier ini, j'utilise ce code :

Code: Select all

var file = new File();
file.open('C:/Users/Quentinou/Desktop/Fichier.ini', File.WriteOnly | File.Append);
file.writeText('[Carton]\r\nCommentaire=Voilà', 'UTF8');
file.close();
et pour le lire :

Code: Select all

var ini = new IniFile();
ini.load("C:/Users/Quentinou/Desktop/Fichier.ini");
ini.setSection("Carton");
var resultat = ini.keyValue("Commentaire");

Console.print(resultat);
Je te remercie

Cordialement

Sergent-Quentin
francois
Posts: 460
Joined: 18 Oct 2010, 10:33
Location: France

Re: Problème de caractère unicode avec la lecture ini

Post by francois »

Bonjour,

En créant le fichier INI de manière classique via l'action : Ecrire fichier ini, les accents sont correctement restitués
lorsqu'on lit ce fichier via l'action Lire fichier ini.

Si tu ouvres le fichier généré (via Notepad+ par exemple), il est en "UTF8 sans BOM".
Donc l'action Lire un fichier ini s'attend à lire un fichier avec ce codage.

C'est là le pb :
Lorsque tu créées le fichier ini via :

Code: Select all

var file = new File();
file.open('C:/temp/Fichier.ini', File.WriteOnly);
file.writeText('[Carton]\r\nCommentaire=Voilà',"UTF8");
file.close();
Ton fichier n'est pas codé comme l'attend l'action Lire un fichier ini

Si tu convertis à la main le fichier en "UTF8 sans BOM" ( via notepad+ par exemple)
alors l'action Lire un fichier ini restitue les accents.

Les encodages dans actiona voir https://wiki.actiona.tools/doku.php?id= ... ore:global
ab.jpg
ab.jpg (38.31 KiB) Viewed 1589 times
Francois
Sergent-Quentin
Posts: 274
Joined: 11 Jun 2014, 14:45

Re: Problème de caractère unicode avec la lecture ini

Post by Sergent-Quentin »

Bonjour,
francois wrote:En créant le fichier INI de manière classique via l'action : Ecrire fichier ini, les accents sont correctement restitués
lorsqu'on lit ce fichier via l'action Lire fichier ini.
Oui, je confirme ^^
francois wrote:Si tu convertis à la main le fichier en "UTF8 sans BOM" ( via notepad+ par exemple)
alors l'action Lire un fichier ini restitue les accents.
J'ai créer 2 fichiers ini, un avec l'action Ecrire fichier ini, l'autre avec le code ci-dessus

En les ouvrant chacun avec notepad, les 2 sont déjà encodées en "UTF8 sans BOM" mais lorsque je les lit, il n'y que celui qui a été créer avec l'action Ecrire fichier ini qui est lisible.

Merci pour ton aide

Cordialement

Sergent-Quentin
Post Reply