par
icebreak » 23 avr. 2008, 03:24
J'ai tout simplement fait un mysql_query("SET NAMES utf8") avant de faire ma requête "INSERT INTO"....et mes textes sont tous niquels.....
Alors pourquoi, ca je ne sais pas...mais çà fonctionne !
Ta base et ton script est en UTF-8 soit.
Mais est-ce-que les caractères l'étaient. Genre même avec une page en UTF-8 les caractères posté avec $_POST pouvait être dans un autre encodage.
Ensuite est-ce-que la communication entre ton client et ton serveur étaient en UTF-8 ?
Si après SET NAMES, tu n'as aucun problème c'est à mon avis que le problème était la valeur de la connections, qui est différente de la collation de ta base ou de celle de tes pages WEB.
Pour donner un exemple précis, imaginons que ta deux russes derrière une glace qui ne laisse pas passer les sons. Leur seule chance de communiquer c'est de se parler avec les mains.
Code : Tout sélectionner
SET NAMES indique ce qui est dans la commande SQL que le client envoie. Par conséquent, SET NAMES cp1251 indique au serveur : ``les futurs messages fournis par ce client seront dans le jeu de caractères cp1251'' et le serveur est libre de les traduire dans son propre jeu de caractères, éventuellement.
La commande SET NAMES 'x' est équivalente à ces trois commandes :
mysql> SET character_set_client = x;
mysql> SET character_set_results = x;
mysql> SET character_set_connection = x;
[quote="Or3_74"]J'ai tout simplement fait un mysql_query("SET NAMES utf8") avant de faire ma requête "INSERT INTO"....et mes textes sont tous niquels.....
Alors pourquoi, ca je ne sais pas...mais çà fonctionne ![/quote]
Ta base et ton script est en UTF-8 soit.
Mais est-ce-que les caractères l'étaient. Genre même avec une page en UTF-8 les caractères posté avec $_POST pouvait être dans un autre encodage.
Ensuite est-ce-que la communication entre ton client et ton serveur étaient en UTF-8 ?
Si après SET NAMES, tu n'as aucun problème c'est à mon avis que le problème était la valeur de la connections, qui est différente de la collation de ta base ou de celle de tes pages WEB.
Pour donner un exemple précis, imaginons que ta deux russes derrière une glace qui ne laisse pas passer les sons. Leur seule chance de communiquer c'est de se parler avec les mains.
[code]
SET NAMES indique ce qui est dans la commande SQL que le client envoie. Par conséquent, SET NAMES cp1251 indique au serveur : ``les futurs messages fournis par ce client seront dans le jeu de caractères cp1251'' et le serveur est libre de les traduire dans son propre jeu de caractères, éventuellement.
La commande SET NAMES 'x' est équivalente à ces trois commandes :
mysql> SET character_set_client = x;
mysql> SET character_set_results = x;
mysql> SET character_set_connection = x;
[/code]