Je me demandais s'il y avait un moyen de définir le codage par défaut pour htmlentities()
. J'ai un grand projet qui utilise htmlentities
appels partout, et se demandait s'il y avait un moyen simple de le définir ISO-8859-1 à UTF-8 comme l'encodage de caractères par défaut, en utilisant quelque chose de simple comme init_set
. Ou éventuellement avec une déclaration séparée namespace. A défaut, je ne serais pas opposé à renommer et à remplacer la fonction htmlentities
pour toujours utiliser Unicode, mais je suis réticent à installer quelque chose d'aussi bizarre (pour moi) que PECL apd.Définir le jeu de caractères par défaut pour htmlentities()
Répondre
Comme la page de manuel ne dit rien sur la modification du jeu de caractères par défaut, je ne pense pas qu'il existe un moyen de le faire; et je ne me souviens pas d'avoir jamais vu quoi que ce soit à ce sujet.
je ne voudrais pas utiliser quelque chose comme apd soit - au lieu, je le ferais sans doute:
- créer ma propre fonction, qui appelle htmlentities avec les bons paramètres
- et remplacer tous les appels à htmlentities par un appel à ma nouvelle fonction (cela peut probablement être fait automatiquement, en utilisant quelques lignes de scripts)
solution de @Pascal MARTIN est certainement correct, vous pouvez également utiliser utf8-encode
t o convertir ISO-8859-1 en UTF-8.
et utf8_decode
pour convertir UTF-8 en ISO-8859-1.
Le problème n'est pas le jeu de caractères dans lequel se trouve la chaîne, c'est la façon dont htmlentities s'en occupe. – amphetamachine
Pourquoi ne pas simplement utiliser htmlspecialchars? htmlentities convertit bien plus que ce dont vous avez besoin en HTML, et grâce à la méthode. Pourquoi ne pas simplement utiliser htmlspecialchars et UTF-8, aucun des caractères qu'il convertit n'apparaîtra au milieu d'un caractère UTF-8 multi-octets, ce qui signifie que À strictement parler, cela n'a pas d'importance si l'on suppose simplement ISO-8859-1. –