Bonjour,
Depuis hier je parcours pas mal de doc sur l'encodage, je n'avais jamais vraiment eu de problème mais là je suis un peu perdu.
En fait à la base j'avais commencé le développement du site sous Windows avec Notepad++.
Mais depuis peu je suis passé sous Mac où j'utilise Textmate.
J'ai décidé d'utiliser le codage suivant :
Afin d'être sûr de toujours travailler en iso-8859-1 j'ai changé l'encodage par défaut de Textmate.
Sur mon site les utilisateurs commentent une photo par exemple avec ce genre de texte : "C'est un été indien !"
Le contenu de la variable php est bien correcte, mais dans la db mysql j'obtiens ce genre de chose : "C'est un ?t? indien !"
Le champ dans la db est de type standard : latin1_swedish_ci (jamais eu de problème avec ce type)
Par contre je remarque dans les paramètres de mon hébergeur : Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
J'arrive a faire fonctionner le code correctement en utilisant la fonction php suivante avant le chargement dans la db : utf8_encode($var);
Alors dans ce cas le contenu de $var dans ma db est correcte aucun problème d'accent.
Je n'arrive pas à comprendre pourquoi je suis obligé d'avoir recours à cette fonction pour avoir des données correcte dans ma db, alors que depuis le début j'essaye de travaille en iso.
Est-ce du au jeu de caractère défini dans MySQL ?
Merci d'avance pour votre aide.
ZbergK.
Depuis hier je parcours pas mal de doc sur l'encodage, je n'avais jamais vraiment eu de problème mais là je suis un peu perdu.
En fait à la base j'avais commencé le développement du site sous Windows avec Notepad++.
Mais depuis peu je suis passé sous Mac où j'utilise Textmate.
J'ai décidé d'utiliser le codage suivant :
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
header("Content-Type: text/html; charset=iso-8859-1");
Afin d'être sûr de toujours travailler en iso-8859-1 j'ai changé l'encodage par défaut de Textmate.
Sur mon site les utilisateurs commentent une photo par exemple avec ce genre de texte : "C'est un été indien !"
Le contenu de la variable php est bien correcte, mais dans la db mysql j'obtiens ce genre de chose : "C'est un ?t? indien !"
Le champ dans la db est de type standard : latin1_swedish_ci (jamais eu de problème avec ce type)
Par contre je remarque dans les paramètres de mon hébergeur : Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
J'arrive a faire fonctionner le code correctement en utilisant la fonction php suivante avant le chargement dans la db : utf8_encode($var);
Alors dans ce cas le contenu de $var dans ma db est correcte aucun problème d'accent.
Je n'arrive pas à comprendre pourquoi je suis obligé d'avoir recours à cette fonction pour avoir des données correcte dans ma db, alors que depuis le début j'essaye de travaille en iso.
Est-ce du au jeu de caractère défini dans MySQL ?
Merci d'avance pour votre aide.
ZbergK.