Utf8_encode [Résolu/Fermé]

Signaler
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
-
gryzzly
Messages postés
4642
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
29 avril 2015
-
Bonjour,

J'ai une bdd codée en utf8 et ma page web avec la norme ISO normal. Je veux afficher des données de ma base et donc si je ne veux pas que ca m'affiche par exemple SupportÃ@ ou un truc du genre, je utf8_decode($ma variable). J'obtiens donc Supporté! waouh !

Sauf que j'ai un formulaire pour modifier ce champ (un bouton radio si ca peut changer qq chose) et j'ai beau faire un utf8_encode, ca ne l'encode pas, en bref lorsque j'affiche pour voir comment ca se passe :

echo $support; // Ecrit Supporté
echo utf8_encode($support); // Ecrit encore Supporté au lieu de SupportÃ@

Voyez vous d'où peut venir le pb?

10 réponses

Messages postés
4642
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
29 avril 2015
1 251
du fichier en lui même qui n'est pas encodé utf8 ?
de la transaction sql qui n'est pas utf8 ?
du charset manquant ?
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
Euh donc le charset c'est bon.

L'encodage du 'fichier en lui même' et de la 'transaction sql'... ca...

Donc pour toi c'est normal que qd on récupère un champ de la bdd :

echo $support // Affiche SupportÃ@
echo utf8_decode($support) // Affiche Supporté

et que ca ne marche pas dans l'autre sens?

Tu penses que ca vient de l'encodage du fichier ou de la transaction sql?
Messages postés
4642
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
29 avril 2015
1 251
Si :
echo $support // Affiche SupportÃ@

alors y'a déjà eu un "probleme" lors de l'enregistrement dnas la base. SI tout se passait bien, tu devrais voir des caract_res "normaux" dans la base.

donc oui, je pense qy'il y'a un probleme de transaction ou d'encodage du fichier. (j'ai rencontré le problème récemment)
arcadess
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
Mon pb s'est révélé lorsque j'ai changé ma bdd de serveur.

Lorsque je rentre mes données par l'interface que j'ai codée, pas de pb.
En l'occurrence, ici, j'ai renté mes données avec un script de création et du coup j'ai des soucis d'affichage.

Mes caractères (issus du script d'insertion) dans la base sont normaux, et ceux issus de mon formulaire sont de la forme Supporté.
arcadess
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
ah oui jt'ai pas dit, mais je bloque mon charset en ISO.

Si je le met en utf8, les caractères issus de la bdd sont normaux mais tous les caractères accentués non issus de la base de données sont des des p'tis carrés.
Messages postés
4642
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
29 avril 2015
1 251
Bah si tu mélange tout ... enfin c'est jouable, mais c'est un peu hard à toujours encoder/decoder)

Pourquoi tu ne passes pas tout en utf8 ???

- enregistrer les fichiers en UTF-8 (à régler sur l'éditeur que tu utilises)
- BD en UTF-8 (à régler sur ton SGBD, penser à régler aussi le charset de la connexion = interclassement)
- encodage utf8 des forms
- charset('utf-8'); dans ton layout

je crois que j'ai rien oublié
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
D'accord.

Donc j'ai tout mis en utf-8 (SGBD, charset, editeur). Les forms, je sais pas comment on fait :/

Et donc, du coup, j'ai des p'tis carrés pour les caratères accentués en html et pourtant, j'ai bien mis AddDefaultCharset utf-8 dans mon httpf.conf et au cas ou, ma meta en utf-8.
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
mais plus de pb pour les relations avec la bdd en tout cas, c'est deja ca merci
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
putin je suis con normal au temps pour moi. Bon merci bcp xD
Messages postés
4642
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
29 avril 2015
1 251
C'est résolu ?
Qu'est ce qu'il manquait du coup ? ... pour les suivants :o)
arcadess
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
Il faut écouter le grand gryzzly !

En fait, c'est juste que dans chaque fichier, il y a le type d'encodage. Du coup si on code en ANSI depuis belle lurette (ou si on reprend le code de qqun qui avait prog en ANSI ou quoi que ce soit) et qu'on dit un jour : 'oh bah faut que je mette tout en utf-8' eh bien faut changer la norme pour chaque fichier, et là on s'apercoit que tous nos p'ti accents se sont transformés en carrés dans l'éditeur... Et là on pleure.

Ça explique pk il y avait plein d'accents sur ma page. puisqu'en réalité tous mes autres fichiers n'étaient pas en utf-8.

Du coup je vais voir si ya pas un prog capable de changer un fichier ANSI en utf-8 parce que sinon j'en ai pour trois jours a changer tous mes p'ti carrés en accents mwa !

Sur ce-bonne journée !
Messages postés
45
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
30 mai 2008
4
(Visiblement Notepad++ le fait en faisant des copier collé)
Messages postés
4642
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
29 avril 2015
1 251
notepad++ le fait sans faire de copier coller:

Format >Convertir en utf8 (et pas encoder en utf8)