Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Problème d'encodage de caractères

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1239
Localisation: Planete terre

URL permanente de ce messagePosté le : Mar Juin 03, 2008 19:48    Sujet du message: Problème d'encodage de caractères

Bonjour,

Je suis confronté à un soucis d'encodage...

J'ai une interface admin en utf-8 et les pages vues par les visiteurs sont en iso-8859-1 . J'utilise htmlentities() avant d'enregistrer en bd ce qui fait que les é sont encodés en é .
J'utilise html_entity_decode() en sortie de bd pour l'affichage et mes é sont affichés en é.
J'ai éssayé aussi avec utf8_decode et utf8_encode combiné également à htmlentities() et html_entity_decode() mais rien y fait .. j'ai toujours un affichage pourrit de certains caractères...
Pour un des champs d'enregistrement j'utilise fckeditor qui lui m'enregistre mes é en é et la sa fonctionne !
Comment dois-je encoder pour obtenir des é car il me semblait que c'était htmlentities() ?

Merci
 
tryan Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2441

URL permanente de ce messagePosté le : Mar Juin 03, 2008 19:53    Sujet du message: Problème d'encodage de caractères

Passe tout en utf-8 ! C'était trop la prise de tête avec le passage en phpBB3 qui est tout en utf8 alors j'ai passé mon site en utf8 Smile

A pu de &eacute de mes ...
 
YoyoS Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1239
Localisation: Planete terre

URL permanente de ce messagePosté le : Mar Juin 03, 2008 20:10    Sujet du message: Problème d'encodage de caractères

J'aimerais bien, mais le soucis est que le site existe depuis un moment et à été créé de façon fixe (page statique) et maintenant par nécessité, je le passe en dynamique.
Donc toutes mes pages actuelles sont iso-8859-1 et je dois faire avec ... d'ou mon soucis ^^!

Il doit bien y avoir un moyen simple puisque fckeditor m'encode un des champs correctement.

Merci
 
tryan Visiter le site web du posteur
darkjukka
WRInaute impliqué
WRInaute impliqué

Inscrit le: 28 Avr 2007
Messages: 311

URL permanente de ce messagePosté le : Mar Juin 03, 2008 20:19    Sujet du message: Problème d'encodage de caractères

Et si tu changeais l'encodage de ton interface admin, ça ne serait pas plus simple ?
 
darkjukka Visiter le site web du posteur
KOogar
WRInaute accro
WRInaute accro

Inscrit le: 16 Nov 2004
Messages: 2995
Localisation: Bangalore +4h30

URL permanente de ce messagePosté le : Mar Juin 03, 2008 20:33    Sujet du message: Re: Problème d'encodage de caractères

tryan a écrit:

Comment dois-je encoder pour obtenir des é car il me semblait que c'était htmlentities() ?

Merci


avec une fonction faite maison tu devrais remédier à ton probleme :

Code:

function TexteUnicode($texte){
$tab1 = array("à","è","é","ê","ù","»","«","°","œ","oeil");
$tab2 = array("à","è","é","ê","ù","»","«","°","œ","œil");
$texte = str_replace($tab1,$tab2,$texte);
return $texte;
}
 
KOogar Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1239
Localisation: Planete terre

URL permanente de ce messagePosté le : Mar Juin 03, 2008 21:17    Sujet du message: Problème d'encodage de caractères

darkjukka: je me pose la question de savoir pourquoi j'ai encoder en utf-8 au lieu de iso-8859-1 car ta solution si simple soit elle semble fonctionner Wink ... (la j'ai les boulles ^^).

KOogar: merci pour ta fonction Very Happy , je la garde de coté pour le moment et je teste tout en iso-8859-1 avant.

Pour remédier à mes soucis d'encodage actuelle, (à titre indicatif) j'utilise cette fonction:
Code:

function jevireaccents($machaine)
{   

    $machaine=($machaine);
   
    $pasaccents = Array("/ç/","/ä§/","/é/","/ä©/","/è/","/ä¨/","/ê/","/äª/","/ë/","/ä«/",
"/Ê/","/äŠ/","/Ë/","/ä‹/","/î/","/ä®/","/ï/","/ä¯/","/ì/","/ÃŽ/","/äŽ/",
"/ò/","/ä²/","/ô/","/ä´/","/ö/","/ä¶/","/õ/","/ó/","/ø/","/äµ/","/ä³/",
"/ä¸/","/Ô/","/ä”/","/Ö/","/ä–/","/Ã/","/ä/","/â/","/ä¢/","/ä/","/ä¤/","/Ã¥/",
"/ä¥/","/Â/","/ä‚/","/Ä/","/ä„/","/ù/","/û/","/ü/","/ä¼/","/Û/","/Ü/","/ä¹/",
"/ä»/","/ä¼/","/ä¼/","/ä›/","/äœ/","/ò/","/ñ/","/’/");

    $dessans = Array("ç", "ç", "é", "é", "è", "è", "ê", "ê", "ë", "ë", "Ê", "Ê", "Ë", "Ë", "î", "î", "ï", "ï", "ì", "Î", "Î", "ò", "ò", "ô", "ô", "ö", "ö", "õ", "ó", "ø", "õ", "ó", "ø", "Ô", "Ô", "Ö", "Ö", "à", "à", "â", "â", "ä", "ä", "å", "å", "Â", "Â", "Ä", "Ä", "u", "û", "ü", "ü", "Û", "Ü", "u", "û", "ü", "ü", "Û", "Ü", "ñ", "ñ", "'");
   
    $machaine = preg_replace($pasaccents, $dessans, $machaine); 
     
    return $machaine;
}


Merci à vous Very Happy
 
tryan Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 523
Localisation: Paris

URL permanente de ce messagePosté le : Mar Juin 03, 2008 22:51    Sujet du message: Re: Problème d'encodage de caractères

tryan a écrit:
J'ai une interface admin en utf-8 et les pages vues par les visiteurs sont en iso-8859-1 . J'utilise htmlentities() avant d'enregistrer en bd ce qui fait que les é sont encodés en é .
J'utilise html_entity_decode() en sortie de bd pour l'affichage et mes é sont affichés en é.
J'ai éssayé aussi avec utf8_decode et utf8_encode combiné également à htmlentities() et html_entity_decode() mais rien y fait .. j'ai toujours un affichage pourrit de certains caractères...
Pour un des champs d'enregistrement j'utilise fckeditor qui lui m'enregistre mes é en é et la sa fonctionne !
Comment dois-je encoder pour obtenir des é car il me semblait que c'était htmlentities() ?


Plusieurs solutions, par ordre de préférence décroissant:
- la meilleure: tout basculer en UTF-8
- stocker en base en UTF-8, et décoder à l'affichage: utiliser utf8_decode à l'affichage
- stocker en base en ISO-8859-1: utiliser utf8_encode au moment du stockage (et utf8_decode si jamais tu recharges un truc de la base dans l'interface d'admin)
- la plus simple, mais tu auras un souci un jour ou un autre: tout laisser en ISO-8859-1

Quel est l'intérêt d'utiliser des entités HTML?

Jacques.
 
jcaron Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1239
Localisation: Planete terre

URL permanente de ce messagePosté le : Mar Juin 03, 2008 23:22    Sujet du message: Re: Problème d'encodage de caractères

- la meilleure: tout basculer en UTF-8
Je ne peux pas .. j'ai déjà beaucoup de pages statiques (crée une par une à la main) en ISO-8859-1 et sa m'obligerais à les reprendre une par une.

- stocker en base en UTF-8, et décoder à l'affichage: utiliser utf8_decode à l'affichage
Déjà essayé et comme expliqué plus haut, mon site est entièrement en ISO-8859-1. Seul les parties que je créé actuellement (admin entre autre) sont en utf-8, d'ou les soucis d'encodage. Le menu créé dynamiquement est inclue également dans les pages déjà présentes (ISO-8859-1) ce qui génère des soucis entre le charset utilisé dans les pages et l'encodage utilisé avant l'enregistrement en bd.

- stocker en base en ISO-8859-1: utiliser utf8_encode au moment du stockage (et utf8_decode si jamais tu recharges un truc de la base dans l'interface d'admin)
Je ne suis pas sur d'avoir comprit!! Passer mon admin en ISO-8859-1 et enregistrer en bd avec utf8_encode. Utiliser utf8_decode seulement pour la partie admin ... la je suis perdu ^^!

- la plus simple, mais tu auras un souci un jour ou un autre: tout laisser en ISO-8859-1
Pourquoi ? Quelle soucis?

Quel est l'intérêt d'utiliser des entités HTML?
J'en sais rien ... je ne demande pas à avoir des entités HTML lors de mes enregistrements, sa se fait tout seul quoi que je fasse.

Merci
 
tryan Visiter le site web du posteur
Marie-Aude
WRInaute accro
WRInaute accro

Inscrit le: 05 Juin 2006
Messages: 3494
Localisation: More than a plastic girl

URL permanente de ce messagePosté le : Mar Juin 03, 2008 23:34    Sujet du message: Re: Problème d'encodage de caractères

tryan a écrit:
- la meilleure: tout basculer en UTF-8
Je ne peux pas .. j'ai déjà beaucoup de pages statiques (crée une par une à la main) en ISO-8859-1 et sa m'obligerais à les reprendre une par une.


Ce que je ne comprends pas, c'est pourquoi tes pages statiques t'obligent à avoir un encodage dans les pages dynamiques ? Tu peux très bien avoir tes pages dynamiques en utf-8 et les statiques en iso-8859-1 ?
 
Marie-Aude Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 523
Localisation: Paris

URL permanente de ce messagePosté le : Mar Juin 03, 2008 23:38    Sujet du message: Re: Problème d'encodage de caractères

tryan a écrit:
- la meilleure: tout basculer en UTF-8
Je ne peux pas .. j'ai déjà beaucoup de pages statiques (crée une par une à la main) en ISO-8859-1 et sa m'obligerais à les reprendre une par une.


iconv est ton ami.

tryan a écrit:
- stocker en base en UTF-8, et décoder à l'affichage: utiliser utf8_decode à l'affichage
Déjà essayé et comme expliqué plus haut, mon site est entièrement en ISO-8859-1. Seul les parties que je créé actuellement (admin entre autre) sont en utf-8, d'ou les soucis d'encodage. Le menu créé dynamiquement est inclue également dans les pages déjà présentes (ISO-8859-1) ce qui génère des soucis entre le charset utilisé dans les pages et l'encodage utilisé avant l'enregistrement en bd.


Pas sûr de comprendre... Tu as des données en ISO-8859-1 dans ta BDD?
Sinon le principe de cette solution est justement de convertir UTF-8 -> ISO ce qui vient de ta bdd avant de l'afficher.

admin (utf-8 ) -> bdd (utf-8 ) -> utf8_decode -> affichage (ISO)

tryan a écrit:

- stocker en base en ISO-8859-1: utiliser utf8_encode au moment du stockage (et utf8_decode si jamais tu recharges un truc de la base dans l'interface d'admin)
Je ne suis pas sur d'avoir comprit!! Passer mon admin en ISO-8859-1 et enregistrer en bd avec utf8_encode. Utiliser utf8_decode seulement pour la partie admin ... la je suis perdu ^^!


J'avais permuté utf8_decode/encode Sad

En clair:
admin (utf-8 ) -> utf8_decode -> bdd (en ISO, donc) -> affichage (ISO)

et bdd -> utf8_encode -> admin si tu "lis" des choses de la bdd dans l'interface admin

tryan a écrit:

- la plus simple, mais tu auras un souci un jour ou un autre: tout laisser en ISO-8859-1
Pourquoi ? Quelle soucis?


On ne peut pas tout encoder en ISO-8859-1. Même le symbole euro n'existe pas (il faut passer en ISO-8859-15 ou windows-1252 pour l'avoir, et il n'a pas le même code dans les deux cas...).

tryan a écrit:

Quel est l'intérêt d'utiliser des entités HTML?
J'en sais rien ... je ne demande pas à avoir des entités HTML lors de mes enregistrements, sa se fait tout seul quoi que je fasse.


Ben tu disais toi même utiliser htmlentities... Qui fait d'ailleurs des choses bizarres parce que tu lui donnes de l'UTF-8 alors qu'il attend de l'ISO-8859-1 par défaut (mais tu peux lui dire que c'est de l'UTF-8, il suffit de lire la doc: http://fr2.php.net/manual/en/function.htmlentities.php)

Jacques.

[edit: fix incorrect auto-smileys]
 
jcaron Visiter le site web du posteur
tryan
WRInaute accro
WRInaute accro

Inscrit le: 20 Fév 2005
Messages: 1239
Localisation: Planete terre

URL permanente de ce messagePosté le : Mer Juin 04, 2008 10:19    Sujet du message: Re: Problème d'encodage de caractères

Marie-Aude a écrit:

Ce que je ne comprends pas, c'est pourquoi tes pages statiques t'obligent à avoir un encodage dans les pages dynamiques ? Tu peux très bien avoir tes pages dynamiques en utf-8 et les statiques en iso-8859-1 ?


C'est à cause du menu commun que j'utilise aussi bien sur les pages statiques que dynamiques. J'ai enregistré directement en bd chaque url, titre, description des pages statiques afin d'avoir une meilleurs gestion de mon menu. Je finis par mit perdre moi même Laughing .

jcaron: merci pour ta réponse précise Very Happy,j'ai testé et sa fonctionne.
Concernant htmlentities(), j'ai créé un espace membre comportant un formulaire et je l'utilise pour éviter d'avoir des soucis au niveau des balises html, script...
Ce qui m'amène à une autre question:
htmlentities() s'utilise avant l'enregistrement en bd ou uniquement en sortie?
 
tryan Visiter le site web du posteur
jcaron
WRInaute passionné
WRInaute passionné

Inscrit le: 13 Fév 2004
Messages: 523
Localisation: Paris

URL permanente de ce messagePosté le : Mer Juin 04, 2008 10:46    Sujet du message: Re: Problème d'encodage de caractères

tryan a écrit:
Marie-Aude a écrit:

Ce que je ne comprends pas, c'est pourquoi tes pages statiques t'obligent à avoir un encodage dans les pages dynamiques ? Tu peux très bien avoir tes pages dynamiques en utf-8 et les statiques en iso-8859-1 ?


C'est à cause du menu commun que j'utilise aussi bien sur les pages statiques que dynamiques. J'ai enregistré directement en bd chaque url, titre, description des pages statiques afin d'avoir une meilleurs gestion de mon menu. Je finis par mit perdre moi même Laughing .


Ben tu convertis tout ça en UTF-8 aussi, et hop Smile

tryan a écrit:
Concernant htmlentities(), j'ai créé un espace membre comportant un formulaire et je l'utilise pour éviter d'avoir des soucis au niveau des balises html, script...
Ce qui m'amène à une autre question:
htmlentities() s'utilise avant l'enregistrement en bd ou uniquement en sortie?


Moi je ne l'utiliserais qu'à l'affichage...

Jacques.
 
jcaron Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort