Salut toutes et tous,
Voilà je suis en train de prendre contact gentiment avec phpBB3 afin d'être prêt lors de la sortie de la version gold... Donc j'installe la RC4, converti mon ancien forum, et tout se passe bien. Sauf que phpBB3 est en UTF8 maintenant (et forcément mon site et mes BDD en latin1). Je commence à bidouiller un peu phpBB3 et m'apercevant que je fais fausse route, je décide de plutôt convertir tout mon site en UTF8 (il faudra bien le faire un jour de toute façon :wink: )... je n'avais pas imaginé la galère...
Alors pour éviter à d'autre de perdre du temps, voilà une petite marche à suivre du comment (ça veut pas dire que c'est l'évangile, c'est très certainement perfectible)...
Conversion de la base de donnée.
Interclassement d'origine: latin1_swedish_ci
Interclassement souhaité: utf8_unicode_ci
1. Création d'une nouvelle base avec interclassemement utf8_unicode_ci
2. Exportation de l'ancienne base (avec phpMyAdmin)
3. Suppression de toutes les "latin1%" dans le fichier exporté (DEFAUT CHARSET=latin1_swedish_ci, ...)
4. Importation de l'anciennce BDD dans la nouvelle en mode binaire
5. Renommage des bases
Conversion des fichiers.
J'ai fait un petit script (non sécurisé, à n'utiliser qu'en local oiu à vos risques) qui parcours l'ensemble d'un répertoire et converti les fichiers en UTF8:
Voilà le tour est joué (normalement)... Ca me fait peur de vous depuis combien de temps je m'arrache les cheveux... (donc pour ma santé mentale merci de ne pas me dire qu'il y avait déjà un post tout prêt là-dessus :? )
Voilà je suis en train de prendre contact gentiment avec phpBB3 afin d'être prêt lors de la sortie de la version gold... Donc j'installe la RC4, converti mon ancien forum, et tout se passe bien. Sauf que phpBB3 est en UTF8 maintenant (et forcément mon site et mes BDD en latin1). Je commence à bidouiller un peu phpBB3 et m'apercevant que je fais fausse route, je décide de plutôt convertir tout mon site en UTF8 (il faudra bien le faire un jour de toute façon :wink: )... je n'avais pas imaginé la galère...
Alors pour éviter à d'autre de perdre du temps, voilà une petite marche à suivre du comment (ça veut pas dire que c'est l'évangile, c'est très certainement perfectible)...
Conversion de la base de donnée.
Interclassement d'origine: latin1_swedish_ci
Interclassement souhaité: utf8_unicode_ci
1. Création d'une nouvelle base avec interclassemement utf8_unicode_ci
2. Exportation de l'ancienne base (avec phpMyAdmin)
3. Suppression de toutes les "latin1%" dans le fichier exporté (DEFAUT CHARSET=latin1_swedish_ci, ...)
4. Importation de l'anciennce BDD dans la nouvelle en mode binaire
5. Renommage des bases
Conversion des fichiers.
J'ai fait un petit script (non sécurisé, à n'utiliser qu'en local oiu à vos risques) qui parcours l'ensemble d'un répertoire et converti les fichiers en UTF8:
Code:
<?php
$rep = "./"; // répertoire à parcourir
$dir = opendir($rep);
while ($fichier = readdir($dir)) {
if($fichier != '..' && $fichier !='.' && $fichier !='' && !is_dir($fichier) && $fichier != "utf8.php") {
$content = file_get_contents($fichier);
$binary = fopen($fichier,'wb'); // ouverture du fichier en binaire et en écriture
if (fwrite($binary, utf8_encode($content))) print "OK - " . $fichier . "<br>";
else print "ERROR - " . $fichier . "<br>";
fclose($binary);
}
}
closedir($dir);
?>
Voilà le tour est joué (normalement)... Ca me fait peur de vous depuis combien de temps je m'arrache les cheveux... (donc pour ma santé mentale merci de ne pas me dire qu'il y avait déjà un post tout prêt là-dessus :? )