joboy84 Posté 24 Février 2010 Posté 24 Février 2010 (modifié) Bonjour, J'ai pour la première fois un problème d'encodage. Je suis en train de développer un site qui sera hébergé chez infomaniak sur une base mysql. Page incriminée : http://www.voilou.fr/annonceurs/ouverture-compte-annonceur.php Comme vous verrez j'ai : <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> Dans mysql j'ai choisin latin_general_ci en interclassement. Mon code php (en partie): On suppose que je sélectionne "Bosnie Herzégovine" dans la liste de pays. <?php$pays = ucfirst(strtolower(trim(mysql_real_escape_string($_POST['pays']))));//Puis je fais une insertion normale dans la base...?> Le problème est que dans la base de donnée cela donne : Bosnie herzégovine Je comprend pas le problème... j'ai testé le script sur un autre serveur et il n'y a pas ce problème d'encodage Pourquoi et comment y remédier? Merci Modifié 24 Février 2010 par joboy84
yuston Posté 24 Février 2010 Posté 24 Février 2010 Salut, juste comme ça, pourquoi c'est marqué "Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)" dans ton screen, vers le bas?
joboy84 Posté 25 Février 2010 Auteur Posté 25 Février 2010 (modifié) En fait oui... Mais bon je viens de tout modifier en UTF8: Lorsque je soumet mon formulaire, les données entrées dans la table avec accent, comme le "é", devient par ex é. Je ne comprends pas... Si je fais SELECT CHARSET(pays), COLLATION(pays),CHARSET('Corée du sud'), COLLATION('Corée du sud')FROM Annonceurs LIMIT 1 ; Cela renvoie: CHARSET(pays) => utf8 COLLATION(pays) => utf8_general_ci CHARSET('Corée du sud') => utf8 COLLATION('Corée du sud') => utf8_general_ci La balise méta est: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Voici la structure des bases : phpinfo() : http://voilou.fr/test.php Dans le .htaccess j'ai ajouté : AddDefaultCharset UTF-8 Svp aidez moi je désespère.. Merci Modifié 25 Février 2010 par joboy84
Dudu Posté 25 Février 2010 Posté 25 Février 2010 Salut Concernant le fichier prorprement dit, la balise <meta> ne sert quasiment à rien. Ce qui est important c'est que le fichier soit lui-même au format UTF-8. Ouvre-le dans un éditeur de texte pour vérifier ça. À savoir: si un fichier est écrit dans un encodage avec une balise meta qui parle d'un autre encodage, la priorité va au format du fichier.
yuston Posté 25 Février 2010 Posté 25 Février 2010 Hello. Comme Dudu l'a dit, c'est l'encodage des caractères au sein même de ton fichier qui compte. Donc, par exemple, dans Notepad++, il faut cliquer sur Format -> Convertir en UTF-8 (sans bom). Pour ce qui est de MySQL, j'admets que je ne connais pas de solution propre (d'ailleurs, si quelqu'un a, je suis preneur) mais, dans mes scripts, j'exécute avant ma première requête SQL ce bout de code: (qui dit à PHP de travailler en UTF8 avec MySQL en gros) mysql_query('SET NAMES \'utf8\''); Voilà!
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant