Pour archivage dans la liste.
J'ai eu un souci avec les accents lors de l'importation de données depuis une base de données externes dans SPIP. Le problème venait du mauvais encodage dans ma base de données externe. Tout était bien configuré en Charset UTF-8 (le site SPIP, la base de données, etc.), mais seules mes données initiales étaient encodées en Charset ISO-8859-1.
J'ai effectué quelques conversions d'un fichier de données initial (au format Microsoft Access) jusqu'à un fichier CSV, que j'ai ouvert avec OpenOffice, puis que j'ai copié/collé depuis mon tableur OpenOffice jusqu'à mon éditeur MySQL (Navicat) pour remplir la base. La base est configurée en UTF-8, mais les données n'ont pas été converties. Le truc pervers est que l'éditeur (Navicat) mais aussi PHPMyAdmin, le client web pour l'administration de ma base de données, m'ont affiché correctement les accents sans me signaler l'incohérence entre les données (encodées en ISO-8859-1) et la base (encodée en UTF-8).
Pour régler le problème, il a suffit de:
- sauver la base, depuis PHPMyAdmin, au format SQL : monfichier-ISO.sql (je suis passé par une version compressée .sql.gz),
- convertir le fichier .sql par la ligne de commande suivante (je suis sous linux):
$ iconv -f ISO-8859-1 -t UTF-8 < monfichier-ISO.sql > monfichier-UTF.sql
- supprimer ma base de données dans PHPMyAdmin
- importer la base convertie (monfichier-UTF.sql) dans PHPMyAdmin