Php : encode/decodage de caractères ascii ver

Hello
Je sèche sur un problème d'encodage : un fichier txt m'est fourni avec des caractères ascii (exemple é) je voudrais parser le contenu de ce fichier pour remplacer tous les caractères ascii en entités html (dans mon exemple remplacer les é par des &ecute;).
je ne trouve pas la solution pour ascii bien que j'y arrive dans d'autres format/entités

Code PHP :

print "<hr>".htmlentities("é", ENT_QUOTES, "UTF-8")."\n"; // é
print "<hr>".htmlentities("é")."\n"; // é

ca n'a pas bien l'air complexe pourtant ???

au grand plaisir de vous lire et d'apprendre de vous !
H

le temps n'épargne pas ce que l'ont fait sans lui.. le php non plus

4 réponses

  1. merci pour ta réponse : ca fonctionne impec .. en php5 car en php4 j'obtiens
    Warning: cannot yet handle MBCS in html_entity_decode()! in xxxx
    et le résultat affiché est
    éêëì

    très cool, merci pour ton aide aussi rapide qu'efficace ;-)
    re-merci !
    H
    1. Bonjour

      L'astuce est d'utiliser html_entity_decode pour transformer ton codage numérique en caractères simples, puis htmlentities pour retrouver les entités HTML nommées.

      $a="&#0233;&#0234;&#0235;&#0236;";
      $b=htmlentities(html_entity_decode($a,ENT_NOQUOTES,'UTF-8'),ENT_NOQUOTES,'UTF-8');
      

      Utilise l'UTF-8 comme encodage intermédiaire, sinon, si ton texte contient des caractères dont le code est supérieur à 255; ils ne pourront pas être traduits
      1. bonjour
        merci pour ta réponse : mon post est mal passé (mes caractères ont été réencodés) :-)

        Hello
        Je sèche sur un problème d'encodage : un fichier txt m'est fourni avec des caractères ascii (exemple "& # 2 3 3 ;" ) je voudrais parser le contenu de ce fichier pour remplacer tous les caractères ascii en entités html (dans mon exemple remplacer les "& # 2 3 3 ;" par des &ecute;).
        je ne trouve pas la solution pour ascii bien que j'y arrive dans d'autres format/entités
        print "<hr>".htmlentities("é", ENT_QUOTES, "UTF-8")."\n"; // é
        print "<hr>".htmlentities("é")."\n"; // é
        


        c'est bien en effet qd j'affiche le code source que je continue à voir
        1. print "<hr>".htmlentities("é")."\n"; // é 
          


          Quand tu dis que ça t'affiches é, c'est normal car je suppose que tu regardes ça avec ton navigateur, donc ce dernier interprète l'entité html & eacute; pour te l'afficher. --> Affiches la source et tu verras l'entité.

          Sinon fais un :
          file_put_contents("./log_test.txt", htmlentities("é"))
          


          Tu le verra dans le contenu du fichier !