Problème accent fichiers Perl TK
Résolu/Fermé
A voir également:
- Tk probleme
- Pdf tk - Télécharger - PDF
- Disneyhd tk ✓ - Forum Google Docs
- Module tkinter has no attribute tk ✓ - Forum Python
- Probleme de domaine en .tk - Forum Réseaux sociaux
- Tik tk - Accueil - Protection
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 15/02/2017 à 18:12
Modifié par [Dal] le 15/02/2017 à 18:12
Salut,
Ce n'est pas très clair ce que tu fais avec Tk
Dans ta boucle Tk, est-ce que tu récupères des données en UTF-8, si oui, tu dois faire
Si tu récupères des données dans un autre format, tu dois faire un
Si ton souci est au niveau des affichages sur stdout, et que ton affichage est en utf-8, tu peux aussi essayer de paramétrer
https://perldoc.perl.org/perlunifaq#What-is-a-%22wide-character%22?
Sinon, tu dois faire un
https://perldoc.perl.org/perlunitut#I/O-flow-%28the-actual-5-minute-tutorial%29
Dal
Ce n'est pas très clair ce que tu fais avec Tk
use utf8est juste pour pouvoir utiliser de l'UTF-8 dans ton code source, et ne t'aide probablement pas dans ton problème.
Dans ta boucle Tk, est-ce que tu récupères des données en UTF-8, si oui, tu dois faire
decode( 'UTF-8', ...(comme dans ton cas initial) pour qu'elles soient dans le format de représentation interne de Perl.
Si tu récupères des données dans un autre format, tu dois faire un
decode()avec le bon format.
Si ton souci est au niveau des affichages sur stdout, et que ton affichage est en utf-8, tu peux aussi essayer de paramétrer
binmode(STDOUT, ":utf8");avant tes print, pour faire la conversion systématiquement sur ce descripteur de fichiers.
https://perldoc.perl.org/perlunifaq#What-is-a-%22wide-character%22?
Sinon, tu dois faire un
encode( 'UTF-8', ...avant d'afficher.
https://perldoc.perl.org/perlunitut#I/O-flow-%28the-actual-5-minute-tutorial%29
Dal
D'abord j'aimerais te remercier Dal pour tes explications. Elles m'ont été super utiles. Je comprends mieux ce que signifie le decode. Après avoir pas mal tergiversé, j'ai utilisé ce que tu m'as dit pour le decode mais ça ne suffisait pas.
J'ai fait alors un truc que je n'ai pas compris mais que j'ai trouvé sur un forum:
# Windows
my $OS = lc($^O);
if ( $OS eq 'mswin32' ) {
$Directory = encode( 'iso-8859-1', $Directory );
}
Je sais pas pourquoi mais en faisant ça et ce que tu m'as dit, à savoir décoder mes fichiers $FilesList récupérés dans le répertoire:
$FilesList[$k] = decode( 'UTF-8', $FilesList[$k] );
Et bien $FilesList[$k] contient alors bien les accents comme il faut. Ce qui est bizarre du coup pour moi, c'est le coup du encode du répertoire. J'ai pas compris pourquoi mais en ajoutant ça, ça marche...
En tout cas merci encore!!
Jamie MacUloth
J'ai fait alors un truc que je n'ai pas compris mais que j'ai trouvé sur un forum:
# Windows
my $OS = lc($^O);
if ( $OS eq 'mswin32' ) {
$Directory = encode( 'iso-8859-1', $Directory );
}
Je sais pas pourquoi mais en faisant ça et ce que tu m'as dit, à savoir décoder mes fichiers $FilesList récupérés dans le répertoire:
$FilesList[$k] = decode( 'UTF-8', $FilesList[$k] );
Et bien $FilesList[$k] contient alors bien les accents comme il faut. Ce qui est bizarre du coup pour moi, c'est le coup du encode du répertoire. J'ai pas compris pourquoi mais en ajoutant ça, ça marche...
En tout cas merci encore!!
Jamie MacUloth