htmlentities et é (e aiguë)
Je vais avoir un problème avec PHP htmlentities
et le "é". Je sais que c'est une sorte de problème de codage, je suis juste surplombant, donc j'espère que quelqu'un peut voir ce que je fais mal.
De l'exécution d'un droit htmlentities("é")
ne retourne pas le bon code comme prévu (soit é
ou é
. J'ai essayé de forcé le jeu de caractères à être 'UTF-8' (en utilisant le paramètre charset de htmlentities), mais la même chose.
Le but ultime est d'avoir un personnage envoyé dans un e-mail HTML encodé en ISO-8859-1'. Quand j'ai essayer de le forcer dans ce type d'encodage, même problème. Dans la source de l'e-mail, vous voyez é, et dans la vue HTML é
.
Qui peut jeter quelque lumière sur mon erreur?
get_html_translation_table()
et en regardant le tableau résultant. Cela vous indiquera si votre adresse e-aiguë doit être traduit. Si cela ne fonctionne pas, vous pouvez toujours obtenir ce tableau, ajouter un e-aiguë et ensuite utiliser strtr($string, $table)
pour l'encodage.Assurez-vous que votre fichier est encodé en UTF-8, et assurez-vous que vous avez les <meta> encodage de caractères correctement réglé.
Si vous configurez votre site de l'encodage UTF-8 (à l'aide de la
<meta>
balise ou les en-têtes http, vous n'aurez pas besoin de l'entité encoder les caractères accentués.OriginalL'auteur Michael Irigoyen | 2011-10-05
Vous devez vous connecter pour publier un commentaire.
iconv
fixe mon email problème de codage.vous êtes les bienvenus 🙂
L'ajout de l'encodage est la clé ici - surtout si htmlentities travaillé pour vous avant, et s'est cassé. Le PHP équipe a eu l'ingénieuse idée de ne pas tout simplement changer le par défaut htmlentities une fois, mais deux fois. Avant 5.4, il était en ISO-8859-1. Après 5.4 et avant 5.6, c'est de l'UTF-8. Que de 5.6, c'est ce que l'default_charset paramètre dans votre php.ini dit. Une fois que vous spécifier l'encodage, ça marchera de nouveau, pas de htmlspecialchars nécessaire. Gardez cela à l'esprit si vous avez soudainement perdu de données parce que vous vous basez sur le documentée (!) les valeurs par défaut ne change pas. PHP est toujours plein de surprises - et pas dans le bon sens.
OriginalL'auteur
Je vous suggère de prendre un coup d'oeil à http://php.net/html_entity_decode . Vous pouvez l'utiliser de la manière suivante:
De cette façon, vous n'avez pas de soins sur l'encodage du fichier php.
edit: faute de frappe
OriginalL'auteur Marius Solbakken Mellum
J'ai ajouté htmlspecialchars pour vous de voir que c'est vraiment codé
http://sandbox.phpcode.eu/g/11ce7/4
OriginalL'auteur genesis
Si vous avez stocké les caractères spéciaux comme "é", alors vous pouvez utiliser la suite bientôt après avoir fait la connexion à la
database
.Avec cela, vous n'avez pas besoin d'utiliser
htmlentities
lors de l'affichage des données.Je sais, mais je suis suggestion de quelque chose qui a travaillé avec moi sous la même situation que la vôtre. De cette façon, il va encoder le tout, en tirant à partir de la base de données et d'éviter l'utilisation d'autres fonctions php comme
htmlentities
,html_entity_decode
,html_entity_encode
etcMa situation n'implique pas une base de données en aucune manière, la forme ou la forme. Ainsi, la raison d'une base de données n'a pas été mentionné dans l'OP. Veuillez lire avant de poster dans la précipitation.
cool bonne chance alors
OriginalL'auteur Ghazanfar Mir