Problème d'accents

Problème d'accents - Perl - Programmation

Marsh Posté le 05-04-2006 à 11:57:19    

Bonjour,
j'ai une fonction qui envoie le nom d'un utilisateur, celui ci peut avoir des accents. Cette fonction est définie dans une bibliothèque que j'ai fait moi même.
Je vérifie ce que j'envoie à la fonction, juste avant son appel, j'obtiens :
On envoie $données, 33,0, "Téééést2"
 
Dans $données j'ai mis : "Téééést1".
 
Donc j'envoie bien les données dans le bon format, seulement après je teste directement dans la fonction ce que je reçois et là il m'affiche des caractères bizarres :
 Ã© pour les accents de $données, "Téééést2" lui est bien affiché.
Si vous avez des idées merci.

Reply

Marsh Posté le 05-04-2006 à 11:57:19   

Reply

Marsh Posté le 05-04-2006 à 12:03:43    

rien compris :o ( et pourtant j'ai tout relu 5 fois)...
 
donc réponse classique sur les problème d'accents: attention à l'encodage de tes fichiers ...

Reply

Marsh Posté le 05-04-2006 à 13:53:23    

Merci, donc je vais mieux m'expliquer.
J'utilise une fonction dans mon application, cette fonction je la développe dans une bibliothèque, elle permet du traitement de variable, enfin bon passons...
Le truc c'est que je dois envoyer en paramètres le nom de l'utilisateur, or celui-ci peut avoir des accents. Le nom de cet utilisateur est stocké dans une variable (on va dire $nom), je fais deux tests : un avant d'appeler la fonction, et un dans la fonction au tout début. Donc dans mon premier test, si j'envoie ma variable et un chaine de caractère quelconques avec des accents j'obtiens tout nickel. Seulement dans mon deuxième test, au début de ma fonction donc, je récupère bien les accents de la chaine de caractère quelconque, mais les accents de $nom sont transformés en caractères bizarres, genre : é

Reply

Marsh Posté le 05-04-2006 à 14:20:33    

d'ou te vient cette variable?
tu l'a ecrit dans ton script? Si c'est el cas alors verifi l'encodage de ton editeur.
Si elle vient d'un champ HTML alors elle sera en UTF-8 à priori.
 
Ensuite tu peux utiliser le module Encode pour decoder ce string dans le format natif de perl, si tu connais son format d'origine.
 
par exemple avec un editeur UTF8 :
 
use Encode;
my $str = decode_utf8('hé');
 
ces histoires d'encodages c'est la merde tout le temps...
j'arrive pas à comprendre comment certains trouvent ca simple !

Reply

Marsh Posté le 05-04-2006 à 14:23:25    

Oui... Je te remercie de ton aide.
Alors cette variable est une variable que je récupère je l'appelle juste et n'y touche jamais sauf pour l'envoyer en paramètres. Seulement si je l'affiche simplement dans un script qui n'est pas ma bibliothèque et bien j'ai l'affichage correct.
Mon éditeur c'est Eclipse, je vais essayer de voir. Mais je sais pas trop vu qu'il y a que cette bibliothèque qui me pose problème. SInon les accents sont bien...

Reply

Marsh Posté le 05-04-2006 à 14:25:23    

ligne 12 ...

Reply

Marsh Posté le 05-04-2006 à 14:25:33    

Je viens d'essayer d'afficher a partir de cette bibliothèque une chaine avec des accents. Marche pas... Donc je regarde l'encodage du fichier, mais c'est bizarre quand même...

Reply

Marsh Posté le 06-04-2006 à 11:01:43    

ca serait bien si tout le monde pouvait ecrire en 7bits...
franchement quesqu'on s'emmerde avec ces accents!

Reply

Marsh Posté le 07-04-2006 à 11:48:27    

;-)
Bon le problème ne venait pas de moi.
En fait je récupérai cette variable et la personne qui me l'envoyait ne la recodait pas en utf8. D'où mon soucis !  
Merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed