Php : encode/decodage de caractères ascii ver

Fermé
hdh Messages postés 10 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 10 juin 2011 - 10 juin 2011 à 16:01
hdh Messages postés 10 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 10 juin 2011 - 10 juin 2011 à 17:23
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

A voir également:

4 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
10 juin 2011 à 16:22
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
hdh Messages postés 10 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 10 juin 2011
10 juin 2011 à 16:28
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
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
hdh Messages postés 10 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 10 juin 2011
Modifié par hdh le 10/06/2011 à 17:23
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