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

Lazarus Pascal Discussion :

Conversion caractères accentués (voire spéciaux) en entités HTML


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 138
    Par défaut Conversion caractères accentués (voire spéciaux) en entités HTML
    Bonjour.

    Existe-t-il, livrée avec Lazarus (ou ailleurs), une routine permettant de transformer automatiquement une chaine de caractères en remplaçant les caractères accentués (voire spéciaux) par leur codage HTML et inversement ?

    Exemple : é <==> &eacute;

    Merci.

  2. #2
    Rédacteur

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Billets dans le blog
    84
    Par défaut
    Citation Envoyé par thewolf Voir le message
    Existe-t-il, livrée avec Lazarus (ou ailleurs), une routine permettant de transformer automatiquement une chaine de caractères en remplaçant les caractères accentués (voire spéciaux) par leur codage HTML et inversement ?

    Exemple : é <==> &eacute;
    Bonjour,

    Pas à ma connaissance, mais on trouve des fonctions qui peuvent aider depuis Delphi :
    http://delphi.developpez.com/faq/?pa...teres-speciaux-HTML

    Attention toutefois : il faut tenir compte des chaînes UTF8, ce qui demande une (fastidieuse) réécriture de la structure case...of
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  3. #3
    Rédacteur

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    Février 2013
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2013
    Messages : 1 436
    Billets dans le blog
    84
    Par défaut
    Bonjour,

    Finalement, j'ai récrit la fonction pour Lazarus :


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    function UTF82HTML(const St : string) : string;
    var
      Li : integer;
      LSt: string;
    begin
      Result := '';
      for Li := 1 to UTF8Length(St) do
      begin
        LSt := UTF8Copy(St, Li, 1);
        if Length(LSt) = 1 then
        begin
          Result := Result + LSt;
        end
        else
        begin
          case UTF8Pos(LSt, '™©®ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ¡¢£¤¥¦§¨ª«¬¯°±²³´µ·¸¹º»¼½¾¿×÷€') of
          1 : Result  := Result  +  '&trade;';
          2 : Result  := Result  +  '&copy;';
          3 : Result  := Result  +  '&reg;';
          4 : Result  := Result  +  '&Agrave;';
          5 : Result  := Result  +  '&Aacute;';
          6 : Result  := Result  +  '&Acirc;';
          7 : Result  := Result  +  '&Atilde;';
          8 : Result  := Result  +  '&Auml;';
          9 : Result  := Result  +  '&Aring;';
          10 : Result  := Result  +  '&AElig;';
          11 : Result  := Result  +  '&Ccedil;';
          12 : Result  := Result  +  '&Egrave;';
          13 : Result  := Result  +  '&Eacute;';
          14 : Result  := Result  +  '&Ecirc;';
          15 : Result  := Result  +  '&Euml;';
          16 : Result  := Result  +  '&Igrave;';
          17 : Result  := Result  +  '&Iacute;';
          18 : Result  := Result  +  '&Icirc;';
          19 : Result  := Result  +  '&Iuml;';
          20 : Result  := Result  +  '&ETH;';
          21 : Result  := Result  +  '&Ntilde;';
          22 : Result  := Result  +  '&Ograve;';
          23 : Result  := Result  +  '&Oacute;';
          24 : Result  := Result  +  '&Ocirc;';
          25 : Result  := Result  +  '&Otilde;';
          26 : Result  := Result  +  '&Ouml;';
          27 : Result  := Result  +  '&Oslash;';
          28 : Result  := Result  +  '&Ugrave;';
          29 : Result  := Result  +  '&Uacute;';
          30 : Result  := Result  +  '&Ucirc;';
          31 : Result  := Result  +  '&Uuml;';
          32 : Result  := Result  +  '&Yacute;';
          33 : Result  := Result  +  '&THORN;';
          34 : Result  := Result  +  '&szlig;';
          35 : Result  := Result  +  '&agrave;';
          36 : Result  := Result  +  '&aacute;';
          37 : Result  := Result  +  '&acirc;';
          38 : Result  := Result  +  '&atilde;';
          39 : Result  := Result  +  '&auml;';
          40 : Result  := Result  +  '&aring;';
          41 : Result  := Result  +  '&aelig;';
          42 : Result  := Result  +  '&ccedil;';
          43 : Result  := Result  +  '&egrave;';
          44 : Result  := Result  +  '&eacute;';
          45 : Result  := Result  +  '&ecirc;';
          46 : Result  := Result  +  '&euml;';
          47 : Result  := Result  +  '&igrave;';
          48 : Result  := Result  +  '&iacute;';
          49 : Result  := Result  +  '&icirc;';
          50 : Result  := Result  +  '&iuml;';
          51 : Result  := Result  +  '&eth;';
          52 : Result  := Result  +  '&ntilde;';
          53 : Result  := Result  +  '&ograve;';
          54 : Result  := Result  +  '&oacute;';
          55 : Result  := Result  +  '&ocirc;';
          56 : Result  := Result  +  '&otilde;';
          57 : Result  := Result  +  '&ouml;';
          58 : Result  := Result  +  '&oslash;';
          59 : Result  := Result  +  '&ugrave;';
          60 : Result  := Result  +  '&uacute;';
          61 : Result  := Result  +  '&ucirc;';
          62 : Result  := Result  +  '&uuml;';
          63 : Result  := Result  +  '&yacute;';
          64 : Result  := Result  +  '&thorn;';
          65 : Result  := Result  +  '&yuml;';
          66 : Result  := Result  +  '&iexcl;';
          67 : Result  := Result  +  '&cent;';
          68 : Result  := Result  +  '&pound;';
          69 : Result  := Result  +  '&curren;';
          70 : Result  := Result  +  '&yen;';
          71 : Result  := Result  +  '&brvbar;';
          72 : Result  := Result  +  '&sect;';
          73 : Result  := Result  +  '&uml;';
          74 : Result  := Result  +  '&ordf;';
          75 : Result  := Result  +  '&laquo;';
          76 : Result  := Result  +  '­';
          77 : Result  := Result  +  '&macr;';
          78 : Result  := Result  +  '&deg;';
          79 : Result  := Result  +  '&plusmn;';
          80 : Result  := Result  +  '&sup2;';
          81 : Result  := Result  +  '&sup3;';
          82 : Result  := Result  +  '&acute;';
          83 : Result  := Result  +  '&micro;';
          84 : Result  := Result  +  '&middot;';
          85 : Result  := Result  +  '&cedil;';
          86 : Result  := Result  +  '&sup1;';
          87 : Result  := Result  +  '&ordm;';
          88 : Result  := Result  +  '&raquo;';
          89 : Result  := Result  +  '&frac14;';
          90 : Result  := Result  +  '&frac12;';
          91 : Result  := Result  +  '&frac34;';
          92 : Result  := Result  +  '&iquest;';
          93 : Result  := Result  +  '&times;';
          94 : Result  := Result  +  '&divide;';
          95 : Result  := Result  +  '&euro;';
            else
              Result  := Result  + '?';
          end;
        end;
      end;
    end;
    Si quelqu'un se dévoue pour écrire sa petite sœur inverse, je suis preneur

    Cordialement,

    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

Discussions similaires

  1. Fonction conversion des caractères spéciaux en entités HTML
    Par JustyDark dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/04/2015, 18h19
  2. Réponses: 3
    Dernier message: 12/04/2008, 13h38
  3. [RegEx] Replacement de caractères accentués et spéciaux
    Par Bloodscalp dans le forum Langage
    Réponses: 5
    Dernier message: 09/04/2008, 17h01
  4. Réponses: 1
    Dernier message: 26/09/2007, 19h38
  5. [VBS] - Caractéres Spéciaux et entités HTML
    Par RegiO dans le forum VBScript
    Réponses: 6
    Dernier message: 07/11/2006, 14h42

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