Sur un serveur web, j'ai un script PHP qui analyse un fichier .sql (qui est stocké directement sur le serveur), et exécute les requêtes sur une base de données mysql. J'ai beaucoup de caractères français qui n'insèrent pas bien: é devient à ©.PHP - Analyser un fichier uft-8 et l'insérer dans la base de données désactive les caractères spéciaux comme é
Quand j'ouvre le fichier sql avec notepad ++, je vois que le codage est « UFT-8 sans BOM ».
Mon script ressemble à ceci:
$handle = fopen("test.sql", "r") or die("couldn't get handle");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle, 4096);
if (strlen ($buffer) < 3) // if we have a blank line
{
mysql_query($query);
$query = $buffer;
sleep(0.5);
}
else
{
$query .= $buffer;
}
}
mysql_query($query); // last insert
fclose($handle);
}
Quand j'ouvre la base de données via phpmyadmin, je vois que les caractères spéciaux sont déjà cassés juste après l'exécution du script.
wow merci beaucoup! travaillé parfaitement – Phillaf