Php : encode/decodage de caractères ascii ver

hdh Messages postés 10 Statut Membre -  
hdh Messages postés 10 Statut Membre -
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. Zep3k!GnO Messages postés 2049 Statut Membre 200
     
    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 !
    0
  2. hdh Messages postés 10 Statut Membre
     
    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
    0
  3. le père
     
    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
    0
  4. hdh Messages postés 10 Statut Membre
     
    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
    0