je developpe un site sur mon PC local (WinXP, MySQL - 5.0.21-community-nt, phpMyAdmin - 2.8.0.3).
Ce site utilise UTF-8
Bon j'ai voulu le mettre en prod sur un serveur linux
J'ai fait un dump de la base à partir de phpmyadmin -> mybase.sql puis j'ai utilisé : mysql -u user -p base < mybase.sql sur le server linux
ça s'est passé sans erreur.
Dans mes pages web, toutes les données venant de Mysql pose un problème avec les accents.
Précision : J'utilise dans tous mes scripts php :
header('Content-type: text/html; charset=UTF-8');
et htmlspecialchars(the_string ,ENT_COMPAT,'UTF-8') (pour les données venant de mysql);
J'ai jeter un coup d'oeil sur les variables d'état de mysql (à partir de phpmyadmin).
J'ai bien vu des différences entre mon PC local et le server (UTF-8 ou Latin) ... mais je ne sais pas trop quoi faire car j'ai lu pas mal de posts qui m'ont montré que c'était pas super simple à modifier ce genre de variable (et les quelles ?)
Je cherche une solution côté mysql et non côté php => donc pas qqchose qui passe par l'ajout de SET NAMES UTF-8 sur chaque requete... ça me parrait pas très clean...
y aurait-il une bonne ame pour m'éclairer un peu ?
sur la page d'accueil de phpmyadmin je vois :
# Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
#
Interclassement pour la connexion MySQL : UTF-8 Unicode (utf8)
La page "variables" de phpmyadmin me dit ça pour le linux:
character set client utf8
(Valeur globale) latin1
character set connection utf8
(Valeur globale) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Valeur globale) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_unicode_ci
(Valeur globale) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci
Alors que j'ai ça pour le Win XP :
character set client utf8
character set connection utf8
character set database utf8
character set filesystem binary
character set results utf8
character set server utf8
character set system utf8
character sets dir C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\
collation connection utf8_unicode_ci
(Valeur globale) utf8_general_ci
collation database utf8_general_ci
collation server utf8
Ma base elle a apparemment u interclassement latin1_swedish_ci (linux et XP)