Votre question

[RESOLU] PHP: htmlentities caractere disparait entierement si accent

Tags :
  • Php
  • Utf-8
  • Iso
  • Dreamweaver
  • Echo
  • Programmation
Dernière réponse : dans Programmation
3 Septembre 2012 16:15:37

Salut,

Dans une page toute simple encodé iso-8859-1:
Lorsque je met une lettre accentué, c'est tout le mot qui disparait !!!!

Exemple:
echo 'test'; // S'affiche correctement
echo 'test é ok'; // S'affiche correctement
echo htmlentities('test'); // S'affiche correctement

echo htmlentities('tèst'); // TOUT LE MOT ne s'affiche pas
echo htmlentities('test é'); // TOUT LE MOT ne s'affiche pas
echo htmlentities('éè'); // TOUT LE MOT ne s'affiche pas


J'avoue que j'y comprend rien.
Aidez moi SVP.

Autres pages sur : resolu php htmlentities caractere disparait entierement accent

a b L Programmation
3 Septembre 2012 16:50:30

Bonjour,

effectivement cela est étrange !!!

rajoute
  1. <?php
  2. ini_set('display_errors', 1);
  3. ?>


au debut de ton code voir si php renvoi des erreur
3 Septembre 2012 18:50:50

Merci pour ta reponse.

J'ai retirer le doctype et le meta et essayer juste ce code:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

echo '<pre>';
echo '1 test'; // S'affiche correctement
echo '2 test é ok'; // S'affiche correctement
echo htmlentities('3 test'); // S'affiche correctement

echo htmlentities('4 tèst'); // TOUT LE MOT ne s'affiche pas
echo htmlentities('5 test é'); // TOUT LE MOT ne s'affiche pas
echo htmlentities('6 éè'); // TOUT LE MOT ne s'affiche pas
?>

Mais c'est le meme probleme.
Je tourne sous wamp server 2.2. Je me demande si c'est ca reste pas un probleme d'encodage ... ?
3 Septembre 2012 19:01:13

PS: Aucunes erreur ne s'affiche
3 Septembre 2012 19:11:09

j'apporte une nouvell:
J'ai envoye les fichiers sur mon serveur d'hebergement et tout fonctionne correctement.
Mais alors qu'est ce qui cloche en local avec wamp server ?
a b L Programmation
3 Septembre 2012 19:16:15

a vraie dire , c'etait la premier fois que j’entendais parler de ce problème ... et je pense que cela resteras un mystère ... j'ai jamais trop aimer wamp !
a c 232 L Programmation
4 Septembre 2012 01:22:03

Salut,

Et si tu fais afficher la source, ça n'y est pas non plus ??
6 Septembre 2012 16:26:01

Salut,

Non rien dans le code source.
Le probleme est coté serveur.

Nouveau test:

echo htmlentities(utf8_encode('éè'));// S'affiche correctement

echo utf8_encode(htmlentities('éè'));//Ne s'affiche pas

echo 'é'; // Affiche é correctement

C'est vraiment trop bizare.
Je vais essayer de rénstaller wamp voir ce que ca donne et je vous tiens au courant demain
6 Septembre 2012 19:43:31

Bon apres réinstallation, rien n'y fait.

La question qu'il faut se poser c'est

Pourquoi lorsqu'on utilise utf8_encode, comme suite:
echo htmlentities(utf8_encode('éè'));
ca fonctionne ?
7 Septembre 2012 14:25:22

RESOLU

J'ai enfin trouver:
Il est dit dans la doc PHP que de l'encodage utilisé par php pour htmlentities est ISO-8859-1 pour les versions anterieur à PHP 5.4.0 et UTF-8 a partir de PHP 5.4.0

Wampserveur utilise la version 5.4.3 de php et mon hebergeur 5.2.17

Voila pourquoi sur mon hebergeur ca marche et sur mon serveur local ca marche pas.

Comment faire alors:
Il faut specifier l'encodage quand on utilise htmlentities ou meme htmlspecialchars: exemple:

htmlentities('éèà', ENT_NOQUOTES, 'iso-8859-1');

Voila, le mystere est resolu :) 
18 Octobre 2012 12:26:49

Waou j'ai le même problème je cherche depuis des jours la solution et la j'y suis prèsque :
une petite question comment on fait pour faire çà!!!???

dans ma page :

<input name="titre" type="text" id="titre" value="<?php echo $row_rsArticles['titre'] = htmlentities(nl2br($row_rsArticles['titre'])); ?>" />
merci, d'avance,
RilCy
29 Octobre 2012 18:53:57

Salut,
essai ca:

  1. <input name="titre" type="text" id="titre" value="<?php echo $row_rsArticles['titre'] = htmlentities(nl2br($row_rsArticles['titre']), ENT_NOQUOTES, 'iso-8859-1'); ?>" />
17 Août 2013 14:57:19

world2world a dit :
RESOLU

J'ai enfin trouver:
Il est dit dans la doc PHP que de l'encodage utilisé par php pour htmlentities est ISO-8859-1 pour les versions anterieur à PHP 5.4.0 et UTF-8 a partir de PHP 5.4.0

Wampserveur utilise la version 5.4.3 de php et mon hebergeur 5.2.17

Voila pourquoi sur mon hebergeur ca marche et sur mon serveur local ca marche pas.

Comment faire alors:
Il faut specifier l'encodage quand on utilise htmlentities ou meme htmlspecialchars: exemple:

htmlentities('éèà', ENT_NOQUOTES, 'iso-8859-1');

Voila, le mystere est resolu :) 


Bravo! Ca marche et ça faisait un moment que je ne comprenais pas. Avec easyphp à la maison, ça n'affichait pas mes phrases où il y avait un accent, et ça marchait si je mettais en ligne (chez Free). Tout vient en effet du codage de htmlentities ou pour ma part de htmlspecialchars.
Merci encore

6 Septembre 2013 02:52:51

jdupraz a dit :
world2world a dit :
RESOLU

J'ai enfin trouver:
Il est dit dans la doc PHP que de l'encodage utilisé par php pour htmlentities est ISO-8859-1 pour les versions anterieur à PHP 5.4.0 et UTF-8 a partir de PHP 5.4.0

Wampserveur utilise la version 5.4.3 de php et mon hebergeur 5.2.17

Voila pourquoi sur mon hebergeur ca marche et sur mon serveur local ca marche pas.

Comment faire alors:
Il faut specifier l'encodage quand on utilise htmlentities ou meme htmlspecialchars: exemple:

htmlentities('éèà', ENT_NOQUOTES, 'iso-8859-1');

Voila, le mystere est resolu :) 


Bravo! Ca marche et ça faisait un moment que je ne comprenais pas. Avec easyphp à la maison, ça n'affichait pas mes phrases où il y avait un accent, et ça marchait si je mettais en ligne (chez Free). Tout vient en effet du codage de htmlentities ou pour ma part de htmlspecialchars.
Merci encore



la meilleur solution aui marche a tous les coup sans se soucier de l'hebergeur et la version php ou autre, meme en gestoin de BDD, et c'est la base de la prog HTML en FR : c'est de remplacer les caracteres accentues par leur valeurs html, exmple "É" deviens "É" le "é" deviens "é" etc etc....

tu fait juste une fonction qui modifie un text donne en l'adaptant a ce format et la quelque soit le navigateur, la langue, l'hebergeur, la version apache ou meme la version PHP ... bref on s'en fou de tt ca car ca sera ecrit en HTML et donc afficher par la suite correctement
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS