bonjour (j'me leve :p)
donc je vais regarder ce que tu m'as donner comme piste, si je trouve quelque chose je te dit.
bonjour (j'me leve :p)
donc je vais regarder ce que tu m'as donner comme piste, si je trouve quelque chose je te dit.
Je croit avoir trouver quelque chose ....
https://metacpan.org/pod/POE%3a%3aWheel%3a%3aTermKey
à creuser ...
edit : j'ai trouver un truc !
https://metacpan.org/pod/Term::TermK...-format-format
"FLAG_UTF8
Ignore locale settings; force UTF-8 recombining on."
bon en fait voilà, je me suis froisser un neurone, j'ai decider de fouiller le fichier visual.pm, la solution est la quelque part ...
j'ai trouver pleins de chose tres interessantes, je cherche cette histoire de utf8, j'ai vu qu'il utilise uniquement UNICODE, donc faut modifier.
si je trouve, je post a solution.
EDIT : j'ai trouver ça aussi
http://log.or.cz/?tag=irc
http://perldoc.perl.org/Encode.html#The-UTF8-flag
Bonjour,
Eureka :
Il faut seulement modifier la variable LANG dans ton environnement
De base il y a :
Tu mets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 michel@MIDO ~ $ echo $LANG fr_FR.UTF-8 michel@MIDO ~ $
et TermVisual_1.pl donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 michel@MIDO /media/michel/DATA Win/_DEV/Moymoy $ export LANG=fr_FR.ISO8859-16
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 --------------------------------------- bright white on blue white on black à éèçàïîôù [06:04 PM] window_one $
Mais surtout tu ne me demandes pas pourquoi ça ne fonctionne pas avec LANG=fr_FR.UTF-8
Pour le bug écran, pour le moment je n'ai pas d'idée
Merci !
t'es un as ^^
pour le reste si t'as des idées ... je suis toujours pres
N'exagérons rien !t'es un as ^^
Il n'est tout de même pas normal que ça ne fonctionne pas en UTF8...
Pour le maximise je n'ai même pas pensé à faire un essai.
Là je suis sur Windows, demain je regarderai mai je ne te promets rien
j'ai parler trop vite ....
En fait pour moi ça ne change absolument rien, c'est toujours pareil :'(
Je casse une graine et je repasse sur Linux.
Tu n'as pas modifié les .pm, les autres variables environnement... ?
@+
Enlève le des fois que d'autres aient une idée...
En fait j'ai omis de te précisé un truc, je travail en SSH ...
je sais pas si ça peut aider :p
Donc tu te connectes sur un PC à distance et tu lances dessus ton script ?
c'est çà ?
Dans ce cas dans ta procédure avant de lancer ton script tu fais un export LANG=fr_FR.ISO8859-16 sur le PC distant.
Je viens de voir que lorsqu'on sort du pgm il y a des messages d'anomalie concernant les variables d'environnement :
suvies des sempiternelles ano de POE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "fr_FR", LC_ALL = (unset), LANG = "fr_FR.ISO8859-16" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
Ce n'est pas beau mais cela ne gène pas, si je relance TermVisual_1.pl c'est OK, j'ai les accents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Name "POE::Kernel::ASSERT_STATES" used only once: possible typo at /usr/share/perl5/POE/Session.pm line 46. Name "POE::Kernel::TRACE_DESTROY" used only once: possible typo at /usr/share/perl5/POE/Session.pm line 69.
1) Est-ce qu'en local c'est OK chez toi ?
2) Pour commencer tu testes avec le bout de code que tu m'as donné, on verra après avec le tien...
Voici qq images, j'ai modifié les variables comme il le demande, mais c'est pareil...
Voici une piste mais avec Net::SSH
Ca démarre Là
[EDIT] c'est OK en maximize :
Alors, ça fonctionne mais c'est pas permanent ... donc à chaque fois je suis obliger de refaire la manip.
le but c'est quand même que le script fonctionne sans intervention de l'utilisateur.
alors je cherche un moyen de faire ça directement dans le script perl.
la j'ai du monde donc pas trop dispo, je regarde ça en detail demain
Merci à toi, à demain.
Bonjour (j'me leve :D) Tu comprends pourquoi je suis HS à 21h00 :lol:
Quand tu auras un moment précise ce qui n'est pas permanent...
A quel moment tu lances le pgm avec Term::visual... de quelle façon, script, cron... ???
Quel module SSH utilises-tu ? Normalement tu dois pouvoir lancer des commandes avec le module du type :
Et si tu as qq instants pour éclairer ma lanterne, qq mots pour préciser ce que tu fais, utilité pour toi de Term::visual... à quoi ça sert ce truc ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ssh->exec("export PS1=''"); $ssh->exec("export LANG='fr_FR.ISO8859-16'");
sans aborder ce qui est classé "Secret défense" bien sûr ;)
En fait quels avantages par rapport au Talk Unix/Linux ?
La doc en anglais je décortique seulement quand je ne peux pas faire autrement !
Cette langue qui n'est absolument pas adaptée à la rigueur de la logique binaire informatique, me gonfle !!! :mouarf:
Bon dimanche @+
boujour
Alors en fait je suis en train de fabriquer un bot irc, mais je voudrais tout faire moi même en perl et pas me servir d'un truc déjas tout fait.
donc tout fonctionne tres bien, sauf cette histoire d'accent.
j'ai essaye ce que tu m'as dit pour $LANG : voila le resultat :
et donc ça fonctionne bien en fait sauf que c'est l'affichage qui ne va plus maintenant !
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 scripts$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fr_FR.ISO8859-16 LANGUAGE=fr LC_CTYPE="fr_FR.ISO8859-16" LC_NUMERIC="fr_FR.ISO8859-16" LC_TIME="fr_FR.ISO8859-16" LC_COLLATE="fr_FR.ISO8859-16" LC_MONETARY="fr_FR.ISO8859-16" LC_MESSAGES="fr_FR.ISO8859-16" LC_PAPER="fr_FR.ISO8859-16" LC_NAME="fr_FR.ISO8859-16" LC_ADDRESS="fr_FR.ISO8859-16" LC_TELEPHONE="fr_FR.ISO8859-16" LC_MEASUREMENT="fr_FR.ISO8859-16" LC_IDENTIFICATION="fr_FR.ISO8859-16" LC_ALL=
de quoi s'arracher les cheuveux de la tête ^^
Il me semblait bien que tu étais en train de réinventer la roue...Alors en fait je suis en train de fabriquer un bot irc, mais je voudrais tout faire moi même en perl et pas me servir d'un truc déjas tout fait.
Mais c'est toujours très formateur...
Là j'ai du mal à comprendre entre ce qui fonctionne et ce qui ne fonctionne paset donc ça fonctionne bien en fait sauf que c'est l'affichage qui ne va plus maintenant !
Tu peux coller une copie d'écran ?
Sinon une piste, mais c'est au pif !!!
- Term::visual doit être censé ecrire en utf8 pour tout le monde... anglais, chinois, arabes...
- Nous pour que ça fonctionne avec nos chers accents on à dû basculer le terminal en ISO8859-16
- Donc à mon avis il doit falloir encoder toutes les écritures dans ton code
ça doit en gros revenir à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 use Encode; # Pour encoder ICI en iso-8859-16 ... ... # Et chaque fois, avant d'écrire sur le terminal encoder ta chaîne : $MyChaine = encode("iso-8859-16", $MyChaine);
(Yomanaise c'est mon bot)
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 [14:07] *** Bot by Moya 2015 *** [14:07] -NOTICE- NickServ Ce pseudo est enregistr� et prot�g�. Si c'est votre pseudo, tapez [14:07] -NOTICE- NickServ /msg NickServ IDENTIFY ^[[4mmotdepasse^[[4m. [14:07] -NOTICE- NickServ Sinon, veuillez choisir un pseudo diff�rent. [14:07] -NOTICE- NickServ Si vous ne changez pas d'ici 1 minute, je changerai votre pseudo. [14:07] -NOTICE- NickServ Mot de passe accept� - vous �tes maintenant identifi�. [14:07] [#testbot] Yomanaise Bonjour les gens :) 2> Use of uninitialized value $l in split at /usr/share/perl5/Term/Visual.pm line 521. 2> Use of uninitialized value $l in split at /usr/share/perl5/Term/Visual.pm line 521. 2> Use of uninitialized value $l in split at /usr/share/perl5/Term/Visual.pm line 521. 2> Use of uninitialized value $l in split at /usr/share/perl5/Term/Visual.pm line 521. [14:07] [#TestBot] Bonobo de retour Yomanaise [14:07] -NOTICE- Bonobo ^[[90m--- Nous sommes le Dimanche 04 N/A 2015, il est 14h07. [14:07] -NOTICE- Bonobo --- Infos - En Samoan 'bonjour' se dit : talofa [14:08] [#testbot] Yomanaise être ou ne pas être é è à *** Bot by Moya 2015 *** 04/01/2015 [14:07] [ #TestBot ] [ LOG ] [Yomanaise]
je vais essayer ce que tu m'as dit pour Encode ...
sinon j'ai ce message de perl ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 scripts$ ./TermVisual.pl perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "fr", LC_ALL = "", LC_LANGUAGE = "fr_FR", LC_MESSAGES = "fr_FR.ISO8859-15", LC_CTYPE = "fr_FR.UTF-8", LC_LANG = "ISO8859-15", LANG = "fr_FR.ISO8859-16" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
bon je sais pas ce que j'ai fait mais voila le bordel ...
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 scripts$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fr_FR LANGUAGE=fr LC_CTYPE=fr_FR LC_NUMERIC="fr_FR" LC_TIME="fr_FR" LC_COLLATE="fr_FR" LC_MONETARY="fr_FR" LC_MESSAGES=fr_FR LC_PAPER="fr_FR" LC_NAME="fr_FR" LC_ADDRESS="fr_FR" LC_TELEPHONE="fr_FR" LC_MEASUREMENT="fr_FR" LC_IDENTIFICATION="fr_FR" LC_ALL=
Ben ça me dit rien non plus.
comment es-tu passé de utf8 à fr_FR ?
Reviens à la config initiale avec utf8, et ne modifie que LANG
Je suis revenu sur Linux initialement avant toute modif j'ai :
et c'est pas bon pour les accents avec Term::visual
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 michel@MIDO /media/michel/DATA Win/_DEV/Moymoy $ locale LANG=fr_FR.UTF-8 LANGUAGE=fr_FR LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL= michel@MIDO /media/michel/DATA Win/_DEV/Moymoy
Je fais simplement :
et j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part export LANG=fr_FR.ISO8859-16
et là c'est OK pour les accents avec Term::visual
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 $ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fr_FR.ISO8859-16 LANGUAGE=fr_FR LC_CTYPE="fr_FR.ISO8859-16" LC_NUMERIC="fr_FR.ISO8859-16" LC_TIME="fr_FR.ISO8859-16" LC_COLLATE="fr_FR.ISO8859-16" LC_MONETARY="fr_FR.ISO8859-16" LC_MESSAGES="fr_FR.ISO8859-16" LC_PAPER="fr_FR.ISO8859-16" LC_NAME="fr_FR.ISO8859-16" LC_ADDRESS="fr_FR.ISO8859-16" LC_TELEPHONE="fr_FR.ISO8859-16" LC_MEASUREMENT="fr_FR.ISO8859-16" LC_IDENTIFICATION="fr_FR.ISO8859-16" LC_ALL=
Après comme je t'ai dit il se peut qu'il faille encoder ISO8859-16 toutes les chaînes, mais pas sûr je ne sais pas ce que fait ce module...
[EDIT]
Ensuite pour jouer j'ai fait :
De façon à avoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 export LC_CTYPE="fr_FR.UTF-8" export LC_MESSAGES="fr_FR.UTF-8" export LC_ALL=''
J'ai toujours les accents dans Term::visual
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 $ locale locale: Ne peut initialiser LC_ALL à la locale par défaut: Aucun fichier ou dossier de ce type LANG=fr_FR.ISO8859-16 LANGUAGE=fr_FR LC_CTYPE=fr_FR.UTF-8 LC_NUMERIC="fr_FR.ISO8859-16" LC_TIME="fr_FR.ISO8859-16" LC_COLLATE="fr_FR.ISO8859-16" LC_MONETARY="fr_FR.ISO8859-16" LC_MESSAGES=fr_FR.UTF-8 LC_PAPER="fr_FR.ISO8859-16" LC_NAME="fr_FR.ISO8859-16" LC_ADDRESS="fr_FR.ISO8859-16" LC_TELEPHONE="fr_FR.ISO8859-16" LC_MEASUREMENT="fr_FR.ISO8859-16" LC_IDENTIFICATION="fr_FR.ISO8859-16" LC_ALL=
Mais à la sortie du pgm j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $ perl TermVisual_1.pl perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "fr_FR", LC_ALL = "", LC_MESSAGES = "fr_FR.UTF-8", LC_CTYPE = "fr_FR.UTF-8", LANG = "fr_FR.ISO8859-16" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Name "POE::Kernel::ASSERT_STATES" used only once: possible typo at /usr/share/perl5/POE/Session.pm line 46. Name "POE::Kernel::TRACE_DESTROY" used only once: possible typo at /usr/share/perl5/POE/Session.pm line 69.
bon, finalement c'est tellement le bordel avec term::visual que je me suis tourner vers screen, qui apparement, est plus accessible.
il me reste a resoudre un pb a regler, l'affichage avec perl dans un screen voulut, et le communication entre les differents script que je vais lancer.
avec ça je devrais pouvoir faire ce que je veux, j'espere !
t'en pense quoi ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager