GNT sans publicité, site mobile, fonctionnalitées exclusives...

Probleme d'accent avec Perl Tk et MAC

Le
Frantz DORSEMAINE
Bonjour à tous. J'ai un problème urgent à résoudre.

Voila ma configuration :

Mac OSX 10.6.5
Perl 5.8.9

Voila un script test :
#! /usr/bin/perl -w

use Encode::Unicode;
use Tk;


use strict;
use warnings;

my $wd=MainWindow->new(-width => 400, -height => 200
);


my $bt=$wd->Button(-text=>"éééé èèèèèè", -command => sub { &Hello
})->place(-x=> 10, -y=> 30);

MainLoop;

sub Hello {
print "Hello"
}

Les accents sur le bouton s'affiche \x(8e) \x(8f)

Voila je cherche depuis 2 jour et rien à faire, pas de solution. J'ai vu
sur un forum que l'on parlai éventuellement d'un problème avec X11,
voici ma version X11 :XQuartz 2.3.6 (xorg-server 1.4.2-apple56)

J'espère que quelqu'un a une solution
A+ Frantz
Lire les 34 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 7
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #22859321
Le 28/11/2010 10:29, Frantz DORSEMAINE a écrit :
Bonjour à tous. J'ai un problème urgent à résoudre.

Voila ma configuration :

Mac OSX 10.6.5



C'est bien de le mettre, mais j'aurais pu le deviner tout seul,
cf. plus loin... Simplement, ça confirme.

Voila un script test :
#! /usr/bin/perl -w

use Encode::Unicode;



Ok.

[...]

my $bt=$wd->Button(-text=>"éééé èèèèèè", -command => sub { &Hello
})->place(-x=> 10, -y=> 30);

[...]

Les accents sur le bouton s'affiche x(8e) x(8f)



Le « é » est à la position 142 = x(8e) dans MacRoman, et le « è »
à la position 143 = x(8f) :

Je suppose donc que ton fichier source est en MacRoman, jeu de
caractères par défaut sur Mac, alors que tu déclares utiliser
Unicode (enfin... c'est ce que je comprends de la ligne qui dit
« use Encode::Unicode; » mais j'ai encore tout à apprendre en Perl).

Et j'imagine que les gourous de Perl ou de Macintosh sauront te dire
maintenant si tu dois changer le format du fichier ou bien une ligne de
code.

Cordialement,
--
Olivier Miakinen
Patrick Texier
Le #22859611
Le Mon, 29 Nov 2010 02:00:43 +0100, Olivier Miakinen a écrit :

> use Encode::Unicode;

Ok.



Il manque use utf8 et Encode ne sert à rien pour ce bout de code sans
conversion.
--
Patrick Texier

vim:syntax=mail:ai:ts=4:et:twr
Patrick Texier
Le #22859971
Le Mon, 29 Nov 2010 08:42:32 +0100, Patrick Texier a écrit :

Il manque use utf8 et Encode ne sert à rien pour ce bout de code sans
conversion.



J'aimerais confirmation que use utf8 est la bonne méthode. La doc Perl
unicode est un bordel pas possible.
--
Patrick Texier

vim:syntax=mail:ai:ts=4:et:twr
perlgenome
Le #22859961
Pour le développement d'application Tk avec accents, il faut utiliser
utf8 comme te l'as mentionné Patrick.

Voici un exemple de code :

#! /usr/bin/perl
use strict;
use warnings;

use utf8;
use Tk;

my $wd = MainWindow->new(
-width => 400,
-height => 200
);

my $bt = $wd->Button(
-text => "éééé èèèèèè",
-command => sub { &Hello; }
)->place( -x => 10, -y => 30 );

MainLoop;

sub Hello {
print "Hellon";
}

Attention : Ton code doit également être en utf8. L'utilisation
d'Encode est tout à fait inutile.
Frantz Dorsemaine
Le #22860271
On 29 nov, 10:11, perlgenome
Pour le développement d'application Tk avec accents, il faut utiliser
utf8 comme te l'as mentionné Patrick.

Voici un exemple de code :

#! /usr/bin/perl
use strict;
use warnings;

use utf8;
use Tk;

my $wd = MainWindow->new(
  -width  => 400,
  -height => 200
);

my $bt = $wd->Button(
  -text    => "éééé èèèèèè",
  -command => sub { &Hello; }
)->place( -x => 10, -y => 30 );

MainLoop;

sub Hello {
  print "Hellon";

}

Attention : Ton code doit également être en utf8. L'utilisation
d'Encode est tout à fait inutile.



Merci pour ta réponse mais il me semble avoir essayer comme ça et que
cela ne marchait pas. Je test ce soir sur mon MAC et je te donne le
résultat.
A+ Frantz
Publicité
Suivre les réponses
Poster une réponse
Anonyme