Conversion d'un site ISO-8859-1 en UTF-8

WRInaute occasionnel
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:
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 :? )
 
WRInaute passionné
biscuit a dit:
...je décide de plutôt convertir tout mon site en UTF8 (il faudra bien le faire un jour de toute façon :wink: )
Pourquoi le faire obligatoirement un jour ?

De plus qu'est-ce qui t'empêche d'avoir un site en ce que tu veux et une section forum en UTF8 ?
 
WRInaute occasionnel
Koxin-L a dit:
Pourquoi le faire obligatoirement un jour ?

De plus qu'est-ce qui t'empêche d'avoir un site en ce que tu veux et une section forum en UTF8 ?

Parce c'est censé devenir la norme, non ?

Ben ce qui m'en empêche c'est l'intégration du forum dans le site... sur la même page je dois intégrer des infos de la bdd en latin1 et en utf8, jai des includes de fichiers latin1 et d'utf8 (forum)... le mixe des deux, c'était pas terrible...
 
WRInaute passionné
UTF8 tend à devenir une norme pour les concepteur de script HTML, mais chacun est toujours libre d'utiliser ce qu'il souhaite comme encodage du moment que c'est fait correctement.
Je dirais que UTF8, par rapport à ISO a un avantage si l'on souhaite utiliser à fond des caractères spéciaux ou traduire son site en javanais.

Pour la section forum, c'est sur que cela peut poser un soucis, mais si tes data sont peu nombreux sur les pages forums, moi, j'aurais juste fait une moulinette php pour les passer en UTF8 à l'affichage.
 
WRInaute passionné
Ha voila une discussion que me rassure, car je suis justement dans ce problème la depuis hier. J'avais des doutes sur lequel utilisé. En revanche je rencontre des soucis avec Easy php et UTF8.

Est-ce que quelqu'un à un tuyau à ma donner ?
 
WRInaute occasionnel
Koxin-L a dit:
UTF8 tend à devenir une norme pour les concepteur de script HTML, mais chacun est toujours libre d'utiliser ce qu'il souhaite comme encodage du moment que c'est fait correctement.
Je dirais que UTF8, par rapport à ISO a un avantage si l'on souhaite utiliser à fond des caractères spéciaux ou traduire son site en javanais.

Pour la section forum, c'est sur que cela peut poser un soucis, mais si tes data sont peu nombreux sur les pages forums, moi, j'aurais juste fait une moulinette php pour les passer en UTF8 à l'affichage.

A mais je ne force personne à changer :wink: Dans l'ensemble le plus simple (enfin...) pour moi était de passer tout le site en utf8. C'est clair que celui qui a un site qui fonctionne très bien en iso, faut pas se casser la tête non plus.Mais vu le nombre de topic que j'ai vu sur plein de forum, c'était pas si évident. C'est pourquoi j'ai posté ce que j'ai fait.

twin a dit:
Ha voila une discussion que me rassure, car je suis justement dans ce problème la depuis hier. J'avais des doutes sur lequel utilisé. En revanche je rencontre des soucis avec Easy php et UTF8.

Est-ce que quelqu'un à un tuyau à ma donner ?

Ca fait un moment que je n'utilise plus easyphp (je tourne avec xampp maintenant)... mais regarde du côté d'apache dans httpd.conf tu devrais avoir un
Code:
AddCharset UTF-8   .utf8
quelque part...
 
WRInaute occasionnel
Désolé pour la lenteur de ma réponse (j'suis pas Suisse pour rien :D )... Ben en fait il n'y a rien à faire, juste vérifier que cette ligne soit là... c'est ton cas donc le problème ne vient pas de là.

Je ne sais pas si tu as réussi à résoudre le problème, car désolé je n'ai pas d'autres pistes à te donner si ce n'est que lors des mes recherches durant ma galère j'ai effectivement vu quelques posts qui parlait d'easyphp et uft8... tout le monde n'était pas vraiment content :?

Ca faisait tellement longtemps que j'attendais la version 2 d'easyphp (pour apache2, mysql4 et php5) que j'ai finit par changer pour xampp... et là pas de problème avec utf8...
 
WRInaute passionné
Ok, bon je crois que je vais déjà essayer de mettre la dernière version d'easyphp, et je verrais par la suite si mon problème est corrigé...
 
WRInaute passionné
twin a dit:
Ok, bon je crois que je vais déjà essayer de mettre la dernière version d'easyphp, et je verrais par la suite si mon problème est corrigé...
Et si t'essayé direct avec un hébergeur.

Perso, easyPHP et consoeur, je m'en sert pas.
Je code, je colle sur le serveur et ensuite je corrige.
Là, au moins, jamais de surprise.
 
WRInaute passionné
Moué, enfin serveur, ca risque de rapidement me prendre la tête de toujours passer par le FTP. La je me suis organisé en double écran, sans devoir passer par la ftp, ce que je trouve avantageux.

Mais c'est vrai que l'avantage du serveur, c'est que l'on a jamais de mauvaise suprise ;)
 
Discussions similaires
Haut