Utf8_encode

Résolu/Fermé
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 - 28 avril 2008 à 14:07
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 - 28 avril 2008 à 15:48
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

gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
28 avril 2008 à 14:10
du fichier en lui même qui n'est pas encodé utf8 ?
de la transaction sql qui n'est pas utf8 ?
du charset manquant ?
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 14:20
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?
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
28 avril 2008 à 14:24
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)
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 14:30
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é.
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 14:33
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.
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
28 avril 2008 à 14:36
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é
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 14:53
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.
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 14:54
mais plus de pb pour les relations avec la bdd en tout cas, c'est deja ca merci
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 14:58
putin je suis con normal au temps pour moi. Bon merci bcp xD
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
28 avril 2008 à 15:09
C'est résolu ?
Qu'est ce qu'il manquait du coup ? ... pour les suivants :o)
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 15:23
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 !
0
arcadess Messages postés 45 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 30 mai 2008 4
28 avril 2008 à 15:30
(Visiblement Notepad++ le fait en faisant des copier collé)
0
gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 330
28 avril 2008 à 15:48
notepad++ le fait sans faire de copier coller:

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