|
Il y a actuellement 7 visiteurs connectés sur le site !
Convertir une base sql en utf8
|
Convertir une base sql en utf8
|
|
Introduction
Il se peut que lors d'un changement de version de Mysql , ou bien
lors de l'upgrade de l'une de vos machines , vous ayez un problème d'accents dans vos pages internet .
Votre encodage étant deffectueux , il convient de passer votre base de données en UTF-8, ceci à l'aide de quelques manipulations simples.
Installation
urpmi libjconv
installera votre paquetage le plus simplement du monde
Conversion
À présent nous allons exporter la base de données que vous souhaitez convertir en UTF-8.
Pour cela, nous allons utiliser mysqldump:
mysqldump --opt -u root -p ma_base > ma_base.sql
une petite sauvegarde au cas ou :
cp ma_base.sql ma_base.sql.bak
Pour convertir au format utf8
iconv -f iso-8859-1 -t utf8 ma_base.sql > ma_base_utf.sql
Et ensuite reintégrer la base dans le serveur sql :
mysql -u root -p ma_base < ma_base_utf.sql
Encoder des fichiers déjà crées
Vous avez commencé à convertir votre site, et vous vous apercevez que vous avez des fichiers précédents encodés en latin.
La fonction utf8_encode permet d'encoder une chaine de caractères donnée (encodée en latin1, soit ISO-8859-1) en UTF-8.
Lancer le script suivant dans votre répertoire et tous les fichiers ainsi que ceux de vos sous-répertoires seront encodés
<?php
function encoderDossier ($dossierAEncoder)
{
$dossier = opendir ($dossierAEncoder);
while ($fichierAEncoder = readdir ($dossier))
{
if ($fichierAEncoder != '.' AND $fichierAEncoder != '..')
{
if (is_file ($fichierAEncoder))
{
$contenu = file_get_contents ($fichierAEncoder);
$fichier = fopen ($fichierAEncoder, 'w');
fputs ($fichier, html_entity_decode (utf8_encode ($contenu)));
fclose ($fichier);
}
else
encoderDossier ($dossierAEncoder . $fichierAEncoder . '/');
}
}
closedir ($dossier);
}
encoderDossier ('./');
?>
Source de l'article
|
|