Bonjour à tous,
Je suis actuellement en stage en entreprise, en fin de DUT Info. Je suis en Allemagne, et mon projet est de refaire un site web. Ok easy, mais le seul bémol, c'est que l'affichage des caractères spéciaux en local est moisie (Je suis sous Windows Vista, et Xampp pour émuler le serveur)
Explications :
La base originale du site web ( http://isuv.de ) est une base MySQL en ISO-8895-1, que j'appelerais latin1, la collation est en latin1_german1_ci et celle-ci contient des caractères UTF-8.
La configuration de PHP, d'Apache, et du "Server encoding" est en Latin1, pourtant si vous allez sur le site, clique droit, informations sur la page, vous voyez que celui-ci s'affiche en UTF-8.
Ce qu'on m'a demandé, c'est de faire disparaitre le latin1 ! On a donc fait tout ceci :
Dump de la base mysql
Remplacement des chaines de caractères suivantes dans le dump.
Création de la base en local.
Insertion des données dans la base.
Bon voilà tout est inséré, je regarde dans l'interface PHPMyAdmin, toutes les données sont LISIBLES, les ü et les ß s'affichent à travers PHPMyAdmin (notez que dans la base orignelle que m'a montré le boss, elles ne s'affichaient pas bien, puisque le texte était de l'utf8 et la base du latin1). Et quand je lance le site en local, j'obtiens tout plein de caractères : �
Boooon, je me suis donc renseigné sur Internet (ICI) à savoir qu'il fallait modifier le fichier httpd.conf d'Apache et lui rajouter la ligne
J'ai également ajouté au fichier php.ini les lignes suivantes :
Et voilà, cela n'a strictement rien changé...
Screenshot à l'appui : http://img247.imageshack.us/img247/1149/isuvxz6.th.jpg
Pouvez-vous m'aider ? Dites moi ce que j'ai oublié de faire ? (et si j'ai oublié de préciser certaines choses...) Mon boss m'a demandé de changer l'encodage du serveur, mais je suis sous windows, et je ne sais absolument pas comment faire... Il faut que je termine ça rapidement de préférence
Merci à vous,
Corentin
Modifié par eXtaZiuM (04 Apr 2008 - 12:06)
Je suis actuellement en stage en entreprise, en fin de DUT Info. Je suis en Allemagne, et mon projet est de refaire un site web. Ok easy, mais le seul bémol, c'est que l'affichage des caractères spéciaux en local est moisie (Je suis sous Windows Vista, et Xampp pour émuler le serveur)
Explications :
La base originale du site web ( http://isuv.de ) est une base MySQL en ISO-8895-1, que j'appelerais latin1, la collation est en latin1_german1_ci et celle-ci contient des caractères UTF-8.
La configuration de PHP, d'Apache, et du "Server encoding" est en Latin1, pourtant si vous allez sur le site, clique droit, informations sur la page, vous voyez que celui-ci s'affiche en UTF-8.
Ce qu'on m'a demandé, c'est de faire disparaitre le latin1 ! On a donc fait tout ceci :
Dump de la base mysql
ssh -p 1022 (siteweb) "mysqldump --compact --max_allowed_packet=1677619200 --default-character-set=latin1 isuvdb | gzip > /home/isuv/isuvdb_`date +%F`.gz"
scp -P 1022 (siteweb):/home/isuv/isuvdb_`date +%F`.gz .
Remplacement des chaines de caractères suivantes dans le dump.
zcat isuvdb_`date +%F`.gz | sed 's/CHARSET=latin1/CHARSET=utf8/' | sed 's/latin1_german1_ci/utf8_general_ci/' > isuvdb_latin1.sql
Création de la base en local.
DROP DATABASE isuvdb; CREATE DATABASE isuvdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Insertion des données dans la base.
mysql --force --max_allowed_packet=1677619200 --default-character-set=utf8 –-database=isuvdb --user=root < isuvdb_latin1.sql
Bon voilà tout est inséré, je regarde dans l'interface PHPMyAdmin, toutes les données sont LISIBLES, les ü et les ß s'affichent à travers PHPMyAdmin (notez que dans la base orignelle que m'a montré le boss, elles ne s'affichaient pas bien, puisque le texte était de l'utf8 et la base du latin1). Et quand je lance le site en local, j'obtiens tout plein de caractères : �
Boooon, je me suis donc renseigné sur Internet (ICI) à savoir qu'il fallait modifier le fichier httpd.conf d'Apache et lui rajouter la ligne
AddDefaultCharset UTF-8
J'ai également ajouté au fichier php.ini les lignes suivantes :
mbstring.language=UTF-8
mbstring.internal_encoding= UTF-8
mbstring.http_input=UTF-8
mbstring.http_output=UTF-8
mbstring.detect_order= auto
Et voilà, cela n'a strictement rien changé...
Screenshot à l'appui : http://img247.imageshack.us/img247/1149/isuvxz6.th.jpg
Pouvez-vous m'aider ? Dites moi ce que j'ai oublié de faire ? (et si j'ai oublié de préciser certaines choses...) Mon boss m'a demandé de changer l'encodage du serveur, mais je suis sous windows, et je ne sais absolument pas comment faire... Il faut que je termine ça rapidement de préférence
Merci à vous,
Corentin
Modifié par eXtaZiuM (04 Apr 2008 - 12:06)