Je suis passé en UTF8. J'ai converti les fichiers, les données des fichiers et supprimé le BOM des fichiers.
Par contre pour la base de données, j'ai du utiliser mysql_query("SET NAMES 'utf8'"); faute de pouvoir convertir mes données.

Voila la fonction qui déconne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
function NomImage($nom='')
{	$patterns=array	(	'/[\'\s]/',		'/([ä])/',		'/([ ])/',		'/([é])/',		'/([ê])/',		'/([è])/',		'/([à])/',	'/([â])/',	'/([û])/',	'/([î])/',	'/([ô])/',	'/([,])/',	'/([-])/',	'/([:])/',	'/([!])/',	'/([\'])/'
						);
	$replac=array		('',				'a',			'',				'e',			'e',			'e',			'a',		'a',		'u',		'i',		'o',		'',			'',			'',			'',			'\''						
						);
 
	$nom=preg_replace($patterns, $replac, $nom);
	return strtolower($nom);
}
echo NomImage('léwàwäwïwBleur'); écrit dans un fichier UTF8 en UT8 me donne : laewawaawa�wbleur

echo NomImage('léwàwäwïwBleur'); venant de la BDD me donne : laewawaawa

L'ajout et l'affichage de léwàwäwïwBleur dans la bdd ne pose aucun soucis, il est enregistré et affiché correctement. C'est seulement cette fonction qui débloque.

Pourquoi ca débloque ? Ce n'est pas l'encodage du fichier qui contient la fonction.