Voici un script exemple qui a pour but de créer un répertoire C:/âme quand on clique sur le bouton.
Il y a des accents dans le nom du répertoire et sur la fenêtre Tk.
On remarquera que les accents s'affichent bizarrement.
Le script est au format utf8.
âme = âme
Si je lance ce script et clique sur le bouton, il me crée un répertoire C:/âme, mais moi je veux âme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 #!/usr/bin/perl use warnings; use strict; use Tk; # Appel du module Tk # Programme principal # Création de la fenêtre my $fenetre = new MainWindow( -title => "Première fenêtre Tk ", -background => "white", ); # Taille minimale de ma fenêtre $fenetre->minsize(300,100); my $MessageAccueil = "TéTé âme\n\n"; # Affichage d'un texte my $LabelAccueil = $fenetre->Label( -text => $MessageAccueil, -background => "white", )->pack(); # Affichage d'un bouton pour fermer la fenêtre my $bouton = $fenetre -> Button ( -text => "Créer répertoire (C:/âme)", -command => sub { mkdir("C:/âme"); }, )->pack(); MainLoop(); # Obligatoire
je rajoute doncdans le script.
Code : Sélectionner tout - Visualiser dans une fenêtre à part use utf8;
Du coup, dans ma fenêtre TK, tous les accents sont correct;
Mais j'ai toujours un répertoire C:/âme qui se crée
j'essaye d'utiliser le module encode et je modifie donc
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part mkdir("C:/âme");mais ça ne fonctionne toujours pas, il ne crée plus rien vu qu'en sorti dans les caractères bizarre remplaçant â, il y a une parenthèse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mkdir( encode("latin1", decode( "utf8", "C:/âme" ) ) ) or die("C:/âme $!");
comment faire pour utiliser use utf8; et ensuite reconvertir un string en latin1 afin de créer un répertoire C:/âme par exemple proprement.
Merci
Partager