Comme du code vaut souvent mieux qu'un long discours, voici ce qui me pose problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
		$this->conn = mysql_connect($host,$user,$passwd) or txt_log('Impossible de se connecter a la bdd  : '.mysql_error($this->conn),'sql.txt');
		mysql_set_charset('utf8',$this->conn);
		$this->query("SET NAMES 'utf8'");
		mysql_select_db($db_name,$this->conn) or txt_log('Impossible de se connecter a la bdd  : '.mysql_error($this->conn),'sql.txt');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
function &query($sql){
		$this->nbQuery++;
		txt_log(mb_detect_encoding($sql.'a').' '.$this->nbQuery.' => '.$sql,'sql.txt');
		$this->result = mysql_query($sql,$this->conn) or txt_log($this->nbQuery." $sql : ".mysql_error($this->conn),'sql.txt');
		return $this->result;
	}
Tout ceci est donc supposé fonctionner en utf-8 . J'essaye de faire passer la requete suivante dans ce bazard :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
replace into user(id,login,pass,nom,prenom,addr,tel,cp,ipInscr,mail,etat,dateInscr) values(21,'login','729f2d8b3d3d9bc07ba349faab7fdf44','nom','prénom','','0500000000','10000','127.0.0.1','email@email.com',0,1215611253)

Tous les champs de la table user sont configurés pour utiliser utf-8 ainsi que la table elle même. Or, dans le cas suivant, le champ prénom vaut 'pr' après l'exécution de la requête. Aucune erreur n'est levée. Le log indique bien que la chaine $sql est une utf-8 . Bref, je cale totalement !

Comment utiliser utf-8 avec php et mysql de façon efficace ?