Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

> Parcourir les entrées

> Proposer une entrée

[Administration] Règle n°1 : les Standards connus et établis du Web tu respecteras

Soumis par L (page perso, ) le 22 juillet 2007. Fermé par Bruno Michel (Jabber id, page perso, ) le 29 mai 2007. 0 vote(s). Voter pour cette tâche
Depuis la version Web de la tribune, si on envoie cette suite de caractères parfaitement ISO-8859-15 conformément à l'encodage de la page (et donc du formulaire d'envoi qui ne spécifie pas d'encodage) -> « ¤ (euro), ¦ (Scaron), ¨ (scaron), ´ (ZCaron), ¸ (zcaron), ¼ (OELig), ½ (oelig), ¾ (Yuml) » ... le backend reçoit la versions ISO-8859-1 des caractères : -> « ¤ (euro), ¦ (Scaron), ¨ (scaron), ' (ZCaron), ¸ (zcaron), ¼ (OELig), ½ (oelig), ¾ (Yuml) » ... qui sont htmlencodés comme cela : -> « ¤ (euro), ¦ (Scaron), ¨ (scaron), ´ (ZCaron), ¸ (zcaron), ¼ (OELig), ½ (oelig), ¾ (Yuml) Or, c'est defective by design, non-standard et donc scandaleux de la part d'un site qui prône le respect des standards ouverts et établis du Web ! En effet, le backend est déclaré avec l'encodage ISO-8859-15 et pourtant il traduit à contre-pied les caractères ISO-8859-15 en entités symboliques de caractères ISO-8859-1 ! Apparemment, la fonction htmlentities() est utilisée (entre autres) pour htmlencoder les messages, donc il faudrait penser à lui spécifier l'encodage ISO-8859-15 en 3ième argument comme le permet PHP selon sa documentation : -> http://fr3.php.net/manual/fr/function.htmlentities.php Sinon, une solution plus simple est de laisser les caractères ISO-8859-15 tels quels vu qu'ils sont conformes à l'encodage ISO-8859-15 du backend et à encoder les autres si nécessaire. En espérant que ce problème connu depuis l'an pèbre ne retombe pas aux oubliettes ...

> Lire l'entrée (3 commentaires, moyenne: 1,3).  

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Plop !

Posté par L (page perso, ) le 08/02/2007 à 19:24. (lien). Évalué à 2.

Je précise que si besoin est, je me propose pour développer la solution. Indiquez-moi le code concerné et je verrais si je peux y apporter ma pierre sachant que je ne connais rien à Templeet et que je ne veux pas y toucher : je peux seulement faire du PHP.

[ Répondre ]

codage, svp

Posté par Olivier Jeannet () le 09/02/2007 à 23:51. (lien). Évalué à 1.

En bon français, il est préférable de ne pas dire "encoder" et "encodage" mais "coder" et "codage" (cf "message codé", "codage de Huffman", "codage préfixe", "codage RVB", etc.). Rappelons que "codec" = codeur/décodeur (on ne parle pas d'encodec). Je trouve d'ailleurs que dire "encodage" est relativement laid.

[ Répondre ]

htmlspecialchars()

Posté par e-t172 (page perso, ) le 29/05/2007 à 15:20. (lien). Évalué à 1.

De toute façon, il vaut toujours mieux utiliser htmlspecialchars() que htmlentities(). En effet, htmlspecialchars() ne transforme en entités que les caractères qui en ont besoin (à savoir & ' " < > ) et non les caractères qui n'en ont pas besoin (à savoir é, à, etc.) car ces derniers sont déjà pris en charge par l'encodage de la page.

Je ne vois vraiment pas d'où vient cette manie d'utiliser htmlentities() alors que htmlspecialchars() suffit. Cette pratique serait même plutôt néfaste car plus lourde (un "é" prend un octet en ISO-8859-15, mais prend 8 octets sous forme d'entité "&eacute;" !).

[ Répondre ]

Revenir en haut de page