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\n"
}
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)
À (at) Wed, 1 Dec 2010 05:40:22 -0800 (PST), Frantz Dorsemaine écrivait (wrote):
On 1 déc, 11:17, Paul Gaborit wrote:
(at) Tue, 30 Nov 2010 09:42:06 -0800 (PST),
Dans le cas des changes avec MySQL, c'est via DBI et DBD::mysql (et la base elle-m me) qu'on g re la question du codage. Il n'y a aucun lien avec l'encodage du script lui-m me...
Sauf si je doit afficher du contenue de la base de donnée qui contient des caractères accentués saisis par un opérateur dans un Winget Tk ????
Perl gère parfaitement les caractères Unicode. Ensuite vous avez trois problèmes : comment gérer les échanges de textes entre Perl et... 1- Tk, 2- MySQL, 3- le contenu de votre script.
Ce sont trois problèmes différents.
Vous n'arrivez pas à gérer le troisième puisque vous n'arrivez pas à gérer l'encodage de votre script. Je vous propose donc de stocker vos messages dans un fichier externe puisqu'il est facile de gérer le codage d'accès à un fichier.
Ensuite, il faudra régler les deux autres problèmes. Mais cela n'a pas de lien avec le codage du source de votre script lui-même.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
À (at) Wed, 1 Dec 2010 05:40:22 -0800 (PST),
Frantz Dorsemaine <dorsemaine.frantz@gmail.com> écrivait (wrote):
On 1 déc, 11:17, Paul Gaborit <Paul.Gabo...@invalid.invalid> wrote:
(at) Tue, 30 Nov 2010 09:42:06 -0800 (PST),
Dans le cas des changes avec MySQL, c'est via DBI et DBD::mysql (et la
base elle-m me) qu'on g re la question du codage. Il n'y a aucun lien
avec l'encodage du script lui-m me...
Sauf si je doit afficher du contenue de la base de donnée qui contient
des caractères accentués saisis par un opérateur dans un Winget Tk
????
Perl gère parfaitement les caractères Unicode. Ensuite vous avez trois
problèmes : comment gérer les échanges de textes entre Perl et...
1- Tk,
2- MySQL,
3- le contenu de votre script.
Ce sont trois problèmes différents.
Vous n'arrivez pas à gérer le troisième puisque vous n'arrivez pas à
gérer l'encodage de votre script. Je vous propose donc de stocker vos
messages dans un fichier externe puisqu'il est facile de gérer le codage
d'accès à un fichier.
Ensuite, il faudra régler les deux autres problèmes. Mais cela n'a pas
de lien avec le codage du source de votre script lui-même.
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
À (at) Wed, 1 Dec 2010 05:40:22 -0800 (PST), Frantz Dorsemaine écrivait (wrote):
On 1 déc, 11:17, Paul Gaborit wrote:
(at) Tue, 30 Nov 2010 09:42:06 -0800 (PST),
Dans le cas des changes avec MySQL, c'est via DBI et DBD::mysql (et la base elle-m me) qu'on g re la question du codage. Il n'y a aucun lien avec l'encodage du script lui-m me...
Sauf si je doit afficher du contenue de la base de donnée qui contient des caractères accentués saisis par un opérateur dans un Winget Tk ????
Perl gère parfaitement les caractères Unicode. Ensuite vous avez trois problèmes : comment gérer les échanges de textes entre Perl et... 1- Tk, 2- MySQL, 3- le contenu de votre script.
Ce sont trois problèmes différents.
Vous n'arrivez pas à gérer le troisième puisque vous n'arrivez pas à gérer l'encodage de votre script. Je vous propose donc de stocker vos messages dans un fichier externe puisqu'il est facile de gérer le codage d'accès à un fichier.
Ensuite, il faudra régler les deux autres problèmes. Mais cela n'a pas de lien avec le codage du source de votre script lui-même.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
Paul Gaborit
À (at) Wed, 01 Dec 2010 21:29:38 +0100, Frantz DORSEMAINE écrivait (wrote):
Voila la réponse :
my $test = "DORSEMAINE éèà"; my $octets = encode(utf8, $test, [ CHECK] ) ;
...
my $rqt=$Base->prepare("UPDATE tb_users SET nom = '$string' WHERE id = 3");
Merci à tous le monde pour votre aide qui m'a bien sortie de la me....
Je crois qu'en fait, vous n'en êtes pas sorti... et de loin. Si ma boule de cristal fonctionne bien, la "solution" que vous préconisé consiste à faire du double encodage...
Avez-vous créé votre base MySQL en lui disant que ses textes étaient stockés en UTF-8 ? Avez-vous vérifié le contenu de votre base avec un autre outil qu'un script Perl ? Avez-vous essayer récupéré du texte venant de la base MySQL ? Avez-vous essayé tout cela avec des textes contenant, par exemple, des caractères chinois ?
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
À (at) Wed, 01 Dec 2010 21:29:38 +0100,
Frantz DORSEMAINE <dorsemaine.frantz@gmail.com> écrivait (wrote):
Voila la réponse :
my $test = "DORSEMAINE éèà";
my $octets = encode(utf8, $test, [ CHECK] ) ;
...
my $rqt=$Base->prepare("UPDATE tb_users SET
nom = '$string'
WHERE id = 3");
Merci à tous le monde pour votre aide qui m'a bien sortie de la me....
Je crois qu'en fait, vous n'en êtes pas sorti... et de loin. Si ma boule
de cristal fonctionne bien, la "solution" que vous préconisé consiste à
faire du double encodage...
Avez-vous créé votre base MySQL en lui disant que ses textes étaient
stockés en UTF-8 ? Avez-vous vérifié le contenu de votre base avec un
autre outil qu'un script Perl ? Avez-vous essayer récupéré du texte
venant de la base MySQL ? Avez-vous essayé tout cela avec des textes
contenant, par exemple, des caractères chinois ?
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
À (at) Wed, 01 Dec 2010 21:29:38 +0100, Frantz DORSEMAINE écrivait (wrote):
Voila la réponse :
my $test = "DORSEMAINE éèà"; my $octets = encode(utf8, $test, [ CHECK] ) ;
...
my $rqt=$Base->prepare("UPDATE tb_users SET nom = '$string' WHERE id = 3");
Merci à tous le monde pour votre aide qui m'a bien sortie de la me....
Je crois qu'en fait, vous n'en êtes pas sorti... et de loin. Si ma boule de cristal fonctionne bien, la "solution" que vous préconisé consiste à faire du double encodage...
Avez-vous créé votre base MySQL en lui disant que ses textes étaient stockés en UTF-8 ? Avez-vous vérifié le contenu de votre base avec un autre outil qu'un script Perl ? Avez-vous essayer récupéré du texte venant de la base MySQL ? Avez-vous essayé tout cela avec des textes contenant, par exemple, des caractères chinois ?
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
Paul Gaborit
À (at) Thu, 02 Dec 2010 06:31:16 +0100, Paul Gaborit écrivait (wrote):
Vous n'arrivez pas à gérer le troisième puisque vous n'arrivez pas à gérer l'encodage de votre script. Je vous propose donc de stocker vos messages dans un fichier externe puisqu'il est facile de gérer le codage d'accès à un fichier.
Je vois en lisant vos autres messages que vous avez réussi à régler ce problème (en réglant correctement Komodo). Parfait. Mais ma remarque suivante tient encore...
Ensuite, il faudra régler les deux autres problèmes. Mais cela n'a pas de lien avec le codage du source de votre script lui-même.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
À (at) Thu, 02 Dec 2010 06:31:16 +0100,
Paul Gaborit <Paul.Gaborit@invalid.invalid> écrivait (wrote):
Vous n'arrivez pas à gérer le troisième puisque vous n'arrivez pas à
gérer l'encodage de votre script. Je vous propose donc de stocker vos
messages dans un fichier externe puisqu'il est facile de gérer le codage
d'accès à un fichier.
Je vois en lisant vos autres messages que vous avez réussi à régler ce
problème (en réglant correctement Komodo). Parfait. Mais ma remarque
suivante tient encore...
Ensuite, il faudra régler les deux autres problèmes. Mais cela n'a pas
de lien avec le codage du source de votre script lui-même.
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
À (at) Thu, 02 Dec 2010 06:31:16 +0100, Paul Gaborit écrivait (wrote):
Vous n'arrivez pas à gérer le troisième puisque vous n'arrivez pas à gérer l'encodage de votre script. Je vous propose donc de stocker vos messages dans un fichier externe puisqu'il est facile de gérer le codage d'accès à un fichier.
Je vois en lisant vos autres messages que vous avez réussi à régler ce problème (en réglant correctement Komodo). Parfait. Mais ma remarque suivante tient encore...
Ensuite, il faudra régler les deux autres problèmes. Mais cela n'a pas de lien avec le codage du source de votre script lui-même.
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
Paul Gaborit
À (at) Thu, 02 Dec 2010 06:40:21 +0100, Paul Gaborit écrivait (wrote):
Je crois qu'en fait, vous n'en êtes pas sorti... et de loin. Si ma boule de cristal fonctionne bien, la "solution" que vous préconisé
préconisez
consiste à faire du double encodage...
Avez-vous créé votre base MySQL en lui disant que ses textes étaient stockés en UTF-8 ? Avez-vous vérifié le contenu de votre base avec un autre outil qu'un script Perl ? Avez-vous essayer récupéré du texte
de récupérer
venant de la base MySQL ? Avez-vous essayé tout cela avec des textes contenant, par exemple, des caractères chinois ?
Désolé pour cette orthographe peu orthodoxe... ;-)
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>
À (at) Thu, 02 Dec 2010 06:40:21 +0100,
Paul Gaborit <Paul.Gaborit@invalid.invalid> écrivait (wrote):
Je crois qu'en fait, vous n'en êtes pas sorti... et de loin. Si ma
boule de cristal fonctionne bien, la "solution" que vous préconisé
préconisez
consiste à faire du double encodage...
Avez-vous créé votre base MySQL en lui disant que ses textes étaient
stockés en UTF-8 ? Avez-vous vérifié le contenu de votre base avec un
autre outil qu'un script Perl ? Avez-vous essayer récupéré du texte
de récupérer
venant de la base MySQL ? Avez-vous essayé tout cela avec des textes
contenant, par exemple, des caractères chinois ?
Désolé pour cette orthographe peu orthodoxe... ;-)
--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
À (at) Thu, 02 Dec 2010 06:40:21 +0100, Paul Gaborit écrivait (wrote):
Je crois qu'en fait, vous n'en êtes pas sorti... et de loin. Si ma boule de cristal fonctionne bien, la "solution" que vous préconisé
préconisez
consiste à faire du double encodage...
Avez-vous créé votre base MySQL en lui disant que ses textes étaient stockés en UTF-8 ? Avez-vous vérifié le contenu de votre base avec un autre outil qu'un script Perl ? Avez-vous essayer récupéré du texte
de récupérer
venant de la base MySQL ? Avez-vous essayé tout cela avec des textes contenant, par exemple, des caractères chinois ?
Désolé pour cette orthographe peu orthodoxe... ;-)
-- Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/> Perl en français - <http://perl.mines-albi.fr/>