2010-01-27 6 views
5

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()

+1

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. –

Répondre

8

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)
0

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.

+0

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

Questions connexes