import CSV : Excel 2007 et PhpMyAdmin
Excel a la fâcheuse tendance d'enregistrer les fichiers .CSV au format ISO-8859-1 (encodage de l'Europe occidental).
Or PhpMyAdmin (outil graphique pour gérer ses bases de données) lui, gère l'import .CSV au format UTF8 (universel). Le résultat est que si vous importez des données comportant des caractères spéciaux ou accentués, le rendu sera catastrophique.
La solution la plus fiable (sans recourir à des convertisseurs externes) est :
- dans Excel, enregistrer le fichier au format CSV (séparateur: point-virgule).

- Ouvrir le fichier dans Notepad.
- Enregistrer le fichier en précisant l'Encodage UTF-8.

- Importer le fichier .csv dans PhpMyadmin.
Les données importées seront au bon format et les caractères accentués apparaîtront sans problème.
MySQL et PHP : problème d’encodage UTF-8 et ISO-8859-1
Lorsqu'on créait des tables Mysql avec PhpMyAdmin (par exemple), elles sont créés par défaut avec l'encodage latin1 (ISO-8859-1).
Même en convertissant manuellement les tables en UTF8, PHP interprète toujours les données de la table au format latin1, ce qui se traduit par des erreurs d'affichage sur les caractères spéciaux.
Le fait que le fichier source PHP ait UTF-8 comme encodage par défaut (paramètre définit dans Dreamweaver) et que le meta http-equiv="Content-Type" est bien défini à text/html; charset=utf-8 n'y changera rien.
La solution :
Après avoir établi la connexion à la base de données, on défini le type d'encodage via la fonction
mysql_set_charset("utf8");
Ce qui donne par exemple :
class dBEx {
private $dbh;
private $encodage:
function connect ($dbuser, $dbpassword, $dbname, $dbhost) {
$this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword);
$this->encodage = mysql_set_charset("UTF-8");
...
}
...
}
PHP et Apache affichent maintenant les caractères en UTF-8 tels quels dans la table.