IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Affichage Caractères spéciaux


Sujet :

Langage Perl

  1. #1
    Membre actif Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 151
    Points : 208
    Points
    208
    Par défaut Affichage Caractères spéciaux
    Bonjour à tous ,

    malgré les tutos ( y compris ceux du site ) , je n'arrive pas a faire afficher ça correctement :

    print "╔═╦═╗\n";
    print "╠═╬═╣\n";
    print "╚═╩═╝\n";

    Ca ne doit pourtant pas être si difficile que ça ...

    voilà ce que mon terminal affiche :
    Wide character in print at ./mes_fonctions.pl line 438, <STDIN> line 1.
    âââŠââ
    Wide character in print at ./mes_fonctions.pl line 439, <STDIN> line 1.
    â*ââ¬ââ£
    Wide character in print at ./mes_fonctions.pl line 440, <STDIN> line 1.
    âââ©ââ

    j'ai fait le test indiqué sur un des tutos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    my @charsets = qw(utf-8 latin1 iso-8859-15 utf-16);
     
    # quelques points de code non non-ASCII
    my $test = 'Ue: ' . chr(220) . '; Euro: ' . chr(8364) . "\n";
     
    for (@charsets) {
        print "$_: " . encode( $_, $test );
    }
    et ça donne :
    ; Euro: â¬
    latin1: Ue: Ü; Euro: ?
    iso-8859-15: Ue: Ü; Euro: €
    PuTTYutf-16: þÿUe: Ü; Euro: ¬

    Mes connaissances étant inexistantes dans ce domaine , je vous remercie par avance pour votre aide.

  2. #2
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    Bonjour,
    j'ai lus ceci dans la FAQ Perl :
    What is a "wide character"?

    This is a term used for characters occupying more than one byte.

    The Perl warning "Wide character in ..." is caused by such a character. With no specified encoding layer, Perl tries to fit things into a single byte. When it can't, it emits this warning (if warnings are enabled), and uses UTF-8 encoded data instead.

    To avoid this warning and to avoid having different output encodings in a single stream, always specify an encoding explicitly, for example with a PerlIO layer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            binmode STDOUT, ":encoding(UTF-8)";
    sources

    j'ai réussi à avoir le résultat souhaitez en UTF-8 en faisant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    binmode STDOUT, ":encoding(UTF-8)";
    use strict;
    use warnings;
     
    # quelques points de code non non-ASCII
    my $test = 'Ue: ' . chr(220) . '; Euro: ' . chr(8364) . "\n";
     
    print "$test \n";
    Tu peux tester directement ici.

    J'espère avoir compris ton problème et répondu correctement

    Edit : Je viens de tester chez moi je n'avais pas perl d'installé au boulot. 9a ne fonctionne pas cependant je me demande si le problème vient de perl ou de la console qui n'est pas en utf-8
    désolé
    Pourquoi faire simple quand on peut faire compliqué.

  3. #3
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par magicshark Voir le message
    Edit : Je viens de tester chez moi je n'avais pas perl d'installé au boulot. 9a ne fonctionne pas cependant je me demande si le problème vient de perl ou de la console qui n'est pas en utf-8
    Certainement un problème avec ta console. Surtout si ça marche sur le site où tu as testé.

    @ olivier1969: essaie sur le site mentionné par magicshark.

    Par ailleurs, si tu utilises des choses comme

    print "╔═╦═╗\n";


    dans ton code, n'oublie pas d'activer le pragma:
    et de sauvegarder ton fichier source au format utf8.

  4. #4
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    @Olivier: jette un coup d’œil à ce fil, tu y trouveras peut-être des réponses à tes problèmes: https://www.developpez.net/forums/d1...console-batch/

  5. #5
    Membre actif Avatar de olivier1969
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Novembre 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 151
    Points : 208
    Points
    208
    Par défaut
    @ Lolo78 : fichier au format utf8 et use utf8; bien indiqués , mais ça ne marche pas , malheureusement ...

    @ Lolo78 : un probleme avec ma console ; j'utilise superPuTTy en ssh pour me logger sur une machine Linux depuis un PC Win7 , mais tous les utilisateurs ne sont pas dans ma config !!


    Bref visiblement il faut certains critères pour le l'affichage soit correct , critères qu'ils faudrait uniques pour chaque types de config => donc irréalisable pour moi .

    Solution : je laisse tomber .

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut à tous.

    J'avais le même genre de problème en ce qui concerne la gestion des caractères UTF8 sous windows 10 pro.
    Il se trouve que la documentation est faite que pour linux et rien en ce qui concerne Windows.

    Voici le script perl (activeperl) sous Windows :
    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
    #!C:\perl64\bin\perl.exe -w
    
    use strict;
    use warnings;
    use diagnostics;
    use utf8;
    
    # ------------
    # Charset utf8
    # ------------
    
    system("chcp 65001 > nul");
    
    binmode STDIN,  ':unix:utf8';
    binmode STDERR, ':unix:utf8';
    binmode STDOUT, ':unix:utf8';
    
    # ----------------------
    # Affichage d'un tableau
    # ----------------------
    
    print "╔═══╦═══╗\n";
    print "╠═══╬═══╣\n";
    print "╚═══╩═══╝\n";
    
    system("pause");
    exit;
    Et voici ce que j'obtiens à la console perl :



    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre averti
    Avatar de magicshark
    Homme Profil pro
    Dans une SS2I donc pas que JAVA
    Inscrit en
    Octobre 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dans une SS2I donc pas que JAVA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 133
    Points : 320
    Points
    320
    Par défaut
    j'ai trouver un peu de réponse ici : http://stackoverflow.com/questions/3.../388500#388500
    Pourquoi faire simple quand on peut faire compliqué.

Discussions similaires

  1. Affichage caractères spéciaux
    Par fabpeden dans le forum C
    Réponses: 2
    Dernier message: 10/05/2007, 18h51
  2. [MySQL] Problèmes affichages caractères spéciaux
    Par jim1 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/04/2007, 16h01
  3. Affichage caractère spéciaux
    Par nicoaix dans le forum Langage
    Réponses: 9
    Dernier message: 19/05/2006, 13h09
  4. Affichage caractéres spéciaux dans une alert.
    Par nebule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/05/2006, 14h51
  5. [Delphi+Access] Pb affichage caractère spéciaux
    Par fred64 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/06/2004, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo