Aller au contenu

Sujets conseillés

Posté

elo,

je suis en train de remodeler un site de diaporama que j'ai eu fiat à moment donné...

Je travaille, en ce moment, avec Scite, créée mes fichiers en veillant à l'encodage UTF-8...

Je déclare dans mon code source comme charset, à plusieurs niveaux, UTF-8.

mais, quand je passe au filtre de la fonction htmlEntities(), l'encodage html des caractères n'apparaît pas correct !

Que n'ai-je donc pas assimilé ?

le résultat

Posté

Ou alors la configuration php et apache (pour php : header('Content-type:text/html;charset:utf-8')) et apache, c'est dans la configuration, il faut changer ISO-8856-1 par UTF-8

Posté (modifié)
un utf8_decode et utf8_encode peut-être ?
Xethorn, merci à toi ;)

apparement, utf8_decode() appliqué avant htmlentities() me retourne l'encodage html de caractères auquel je m'attends...

mais, là question, se pose :

A quoi ca sert de créer mes fichiers en encodage utf8, de passer le paramètre charset=utf8 dans le code (x)html, si pour avoir les caractères encodés en html (exemple : è pour è, ou é pour é, etc...) il me faut passer par la function utf8_decode() avant d'appliquer htmlentities()...

car, si je n'applique pas la recette de l'utf8_decode avant la moulinette htmlentities, les caractères encodés ne correspondent pas, puisque par exemple pour un é, j'ai l'encodage html suivant :  ???

Avouez que cela a de quoi dérouté !?!

Modifié par ste
Posté

D'où la complexité de son utilisation. Personnellement, j'ai dut m'adapter à cause de mon logiciel de création de site web (Kwrite) qui utilisait par default l'UTF-8. Par la même occasion, j'ai découvert les points positifs et négatifs.

Mais bon, après, c'est une question de choix ;)

Posté
D'où la complexité de son utilisation. Personnellement, j'ai dut m'adapter à cause de mon logiciel de création de site web (Kwrite) qui utilisait par default l'UTF-8. Par la même occasion, j'ai découvert les points positifs et négatifs.

Mais bon, après, c'est une question de choix ;)

Donc, tu t'es trouvé dans la même situation ...

A se tirer les cheveux !!!

Posté
si pour avoir les caractères encodés en html (exemple : è pour è, ou é pour é, etc...) il me faut passer par la function utf8_decode() avant d'appliquer htmlentities()...

Tout d'abord, un des avantages de déclarer un jeu de caractères c'est justement de ne pas avoir à faire &eagrave; mais directement mettre la lettre accentuée. Pas besoin de jouer au htmlentities pour ça (le htmlspecialchars reste nécessaire)

Ensuite, si tu as besoin de passer par utf8_decode() c'est que PHP fonctionne par défaut en ISO-8859-1. La plupart des fonctions PHP marcheront mal ou pas du tout avec de l'UTF-8 (surtout à cause des caractères sur plusieurs octets). C'est le cas aussi pour htmlentities().

Par contre cette dernière a une possibilité supplémentaires, tu peux lui dire "ce que je t'envoie est de l'UTF-8". Il suffit de mettre 'UTF-8' en troisième paramètre, et 'op, plus besoin de utf8_decode().

htmlentities ( $texte , ENT_COMPAT , 'UTF-8')

Posté (modifié)
Par contre cette dernière a une possibilité supplémentaires, tu peux lui dire "ce que je t'envoie est de l'UTF-8". Il suffit de mettre 'UTF-8' en troisième paramètre, et 'op, plus besoin de utf8_decode().

htmlentities ( $texte , ENT_COMPAT , 'UTF-8')

Une des fonctionnalités que je n'avais pas assimilé...

Je viens de tester, et en effet, ca fonctionne tout autant !

Modifié par ste
Posté
Tout d'abord, un des avantages de déclarer un jeu de caractères c'est justement de ne pas avoir à faire &eagrave; mais directement mettre la lettre accentuée. Pas besoin de jouer au htmlentities pour ça (le htmlspecialchars reste nécessaire)

Je crois qu'il y a quelques exceptions qui ne permettent pas d'éviter la codification... par exemple le caractère "". à vérifier....

Posté

"" peut tout à fait être codé directement. Le problème vient de Windows (pour changer) qui code certains caractères n'existant pas dans l'ISO-8859-1 de manière non standard dans de l'ISO-8859-1 justement, ce qui risque de ne pas être lisible partout (c'est le le fameux codage cp1252). Si tu choisis de l'ISO-8859-15, ou mieux de l'UTF-8, tu pourras l'écrire directement tous tes caractères sans problèmes (du moins à ma connaissance)

Posté

dsl, hier j'avais tappé un message mais la déconnexion à durer alors j'ai pas pu l'envoyer. Le voici :

---

Absolument pas. Regarde mon blog, il est en UTF-8 de A-Z. Je ne m'en tire pas les cheveux pour autant. Par rapport à ce que j'avais entendu sur l'UFT-8 je m'attendais à quelque chose de beaucoup plus compliqué.

Le seul problème a été le fait que mes anciens code sources avaient été abimés (accents supprimés), enfin, ça n'a pas vraiment été un problème, j'avais choisis une solution drakoniène qui était de tout recommancer depuis 0 (et comme je voulais aussi essayer de faire un programme en phylosophie POO, je m'y suis donc mis).

Un problème majeur qu'il m'a été donné, c'est au niveau de mysql et des formulaires. En 5 minutes, il a été réglé par un décodage -> parsing -> recodage. Bref, rien de bien compliqué. Le principal, c'est qu'il faut que tu comprenes comment utiliser le plus rapidement possible les fonctionnalités utf8 de php, après, ça rulez.

Si ça ne vas pas, arrete de te tirer les cheveux et imagine la personne qui a passé son temps à réaliser ses deux fonctions qui bien que petites ont un travail énorme de conversion.

---

Et il fait référence à :

Donc, tu t'es trouvé dans la même situation ...

A se tirer les cheveux !!!

  • 4 months later...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...