Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1844 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Charset, mysql, php et facebook

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Charset, mysql, php et facebook

n°2057586
chris_avig
Posté le 17-02-2011 à 16:44:12  profilanswer
 

Bonjour à tous,
 
j'ai un soucis de charset. J'avoue que jusqu'à présent j'ai toujours bidouillé pour que ca marche, sans jamais comprendre le pourquoi du comment ca marchait.
 
J'ai une base de donnée mysql qui se remplit à partir d'un post php. Les données contiennent bien sûr des caractères spéciaux (nos chers accents français :-) ). Des pages php font ensuite un query depuis la base de donnée pour afficher les données.
 
Jusque là, pas de problème: mes accents ne se perdent pas en route.  
Or maintenant je suis en train de développer une application facebook qui doit me ressortir les données de ma bdd. Et là le soucis: les caractères ne passent pas. FBML ne prend certainement pas de metatag en compte.
 
Je cherche donc une combinaison gagnante pour que base de donnée, posting et querying fonctionnent bien, et sur hébergement normal, et sur plateforme FBML.
 
Voilà ce que j'utilise jusque là (je pense que certains vont rire ^_^):  
 
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: utf8_general_ci
MySQL fields collation: latin1_swedish_ci
Posting PHP page: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>   +    mysql_query("SET NAMES utf8" );
Querying PHP page: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
 
Merci à tous pour votre aide... :-)


Message édité par chris_avig le 17-02-2011 à 16:44:55
mood
Publicité
Posté le 17-02-2011 à 16:44:12  profilanswer
 

n°2057602
rufo
Pas me confondre avec Lycos!
Posté le 17-02-2011 à 17:24:22  profilanswer
 

pourquoi dans ton php tu utilises pas utf8_encode() ou utf8_decode() ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2057649
chris_avig
Posté le 18-02-2011 à 04:29:32  profilanswer
 

Super, merci, ca marche :-)
Bon, il faut utiliser utf8_encode() sur facebook, et je ne comprends pas pourquoi c'est encode et pas decode. Je crois que je resterai confuse et bidouillerai encore pendant quelques temps :-D

n°2057680
rufo
Pas me confondre avec Lycos!
Posté le 18-02-2011 à 10:00:06  profilanswer
 

ca veut dire que tes données sont en iso-8859-1 dans la bd ou alors dans le fichier xml (si FBML est du xml, je ne connais pas)... Pour rappel, certains parsers xml ne gèrent pas forcément l'utf-8 (cela dit, en 2011, ils deviennent rares).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2057773
chris_avig
Posté le 18-02-2011 à 13:08:52  profilanswer
 

Mais si dans phpadmin je lis :
MySQL charset: UTF-8 Unicode (utf8)  
MySQL connection collation: utf8_general_ci  
 
cela veut dire que la bd est en utf, non?
pourtant dans la page php, c'est "encode" qui me permet de lire correctement.

n°2057793
rufo
Pas me confondre avec Lycos!
Posté le 18-02-2011 à 14:18:49  profilanswer
 

non, pas nécessairement : http://dev.mysql.com/doc/refman/5. [...] ction.html
T'as des charset à différents niveaux, rien que dans mysql :
- variables de conf globales : charset pour la collation, connexion, pour les résultats, charset par défaut...
- variables de conf du serveur mysql (mysqld) : idem
- variables de conf du client mysql : idem
- variables de conf des clients (appli web, par ex) : idem
- charset de la BD
- charset d'une table
- charset d'un champ texte d'une table
 
Après, en dehors de mysql, t'as le charset d'apache, du système de fichier, du parser XML (si t'en utilises un) et du charset de la page web. Donc tu vois, y'en a des sources d'erreur... J'en sais qq chose, j'en ai justement un de pb de charset : la connexion entre mysql et l'appli web se fait en utf-8 au lieu d'iso-8859-1 (latin1) et j'ai beau modifier les variables de conf de mysql (my.cnf ou my.ini suivant l'OS), je m'en sors pas, je dois envoyer juste après ma création de connexion la requête "SET CHARACTER SET latin1" et là ça le fait...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Charset, mysql, php et facebook

 

Sujets relatifs
MySQL/PhP Novice - Méthode de travailCopier tables MySQL vers un autre serveur
Charset modifié entre Mysql et mes pages webParser un fichier BibTex pour l'insérer dans une bdd MySQL
Récupération de donénes mysql après upgrade[RESOLU] [MySQL] Jointures sur 3 tables
Mysql 5/SQLServer - Cherche grosse base de données[archi mysql] splitter ou non des tables pour gagner en perf ?
[mySql] Probleme cle etrangere sur deux primary key 
Plus de sujets relatifs à : Charset, mysql, php et facebook


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR