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

Web Perl Discussion :

[PERL/regexp] Convertir du texte accentué en texte HTML


Sujet :

Web Perl

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut [PERL/regexp] Convertir du texte accentué en texte HTML
    Bonjour à tous,

    J'ai cette fonction:
    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
     
    sub TextToHTML()
    {
          my $TEXT=shift;
          my %HTMLCar=(
                        \xE0=>'&agrave',
                        \xE9=>'&eacute',
                        \xE8=>'&egrave',
     
          );
          foreach my $keys (keys %HTMLCar)
          {
                open (fic,">>./z.txt");
                print fic "$TEXT\n";
                close(fic);
                $TEXT=~s/$keys/$HTMLCar{$keys}/g;
          }
          return $TEXT;
    }
    qui devrait convertir les é,è,à etc (etc ... ,enfin pas là) en leur équivalent HTML.
    Mais cela ne fonctionne pas !!!!

    Lorsque j'essaie avec l'exemple suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Hé, bonjour à tous !!
    J'obtiens dans mon fichier z.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Hé, bonjour à tous
    au lieu d'obtenir (c'est ce que je voudrais)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    H&eacute,bonjour &agrave tous !!
    Que fais je de mal ???


    Merci pour vos réponses !
    tout le monde est d'accord pour critiquer la pensée unique

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    voilà ce que je fais pour convertir tous simplement les accents dans un fichier.
    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
     
    if ($ligne =~ /[éèàûôçâêîùûäïëö]/gi){
            $ligne =~ s/é/é/g;
            $ligne =~ s/è/è/g;
            $ligne =~ s/à/à/g;
            $ligne =~ s/û/û/g;
            $ligne =~ s/ô/ô/g;
            $ligne =~ s/ç/ç/g;
            $ligne =~ s/â/â/g;
            $ligne =~ s/ê/ê/g;
            $ligne =~ s/î/î/g;
            $ligne =~ s/ù/ù/g;
            $ligne =~ s/û/û/g;
            $ligne =~ s/ä/ä/g;
            $ligne =~ s/ï/ï/g;
            $ligne =~ s/ë/ë/g;
            $ligne =~ s/ö/ö/g;
     }
    Mais tous dépend souvent de l'editeur de texte qui peut ne pas reconnaitre le caractere accentué. Je sais plus comment je m'etais debrouillé sur ultraedit, j'avais du le passer en utf 8 je crois, je sais plus.
    Sinon, si tu utilise HTMLarser, il y a une methode qui gere la conversion des caracteres accentués encode_entities

    Bon courage!!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Points : 314
    Points
    314
    Par défaut
    Ok, merci bien !!

    ça n'a pas fonctionné avec ta fonction (peut-etre à cause de l'éditeur de texte (psPad)), mais avec le module HTML::Entities, nickel.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    use HTML::Entities;
    sub TextToHTML()
    {
        my $TEXT=shift;
        $HTMLTEXT=encode_entities($TEXT);
        return $HTMLTEXT;
    }
    Merci donc et bonne journée
    tout le monde est d'accord pour critiquer la pensée unique

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Ne pas oublier le tag résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir texte accentué sans accent
    Par balawoo dans le forum Word
    Réponses: 11
    Dernier message: 12/10/2012, 16h53
  2. Réponses: 7
    Dernier message: 02/10/2012, 22h26
  3. Réponses: 10
    Dernier message: 19/03/2008, 11h06
  4. Comment convertir de L'unicode en texte accentué
    Par L4BiN dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2006, 17h59
  5. Convertir du texte formatte en texte
    Par Seth77 dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2006, 22h53

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