Romain CANON
Développeur Web passionné, spécialisé dans TYPO3. Joueur de StarCraft II et DotA 2. Fan de Led Zepp'.



Convertir une base de données entière en UTF-8


Depuis la version 4.5, TYPO3 est optimisé pour travailler avec une base de données encodée en UTF-8. Cependant, lors de l'installation d'une instance TYPO3, ce dernier va utiliser l'encodage par défaut de la base de données que vous utilisez.

Bien entendu il est recommandé que l'encodage par défaut de vos bases soit UTF-8, mais nous sommes tous capables par erreur de nous retrouver avec une base encodée en latin1 – par exemple – et nous en apercevoir plus tard dans l'avancement du projet.

Je vous partage donc un petit bout de code à utiliser en SSH qui vous permet de convertir les encodages de toutes les tables d'une base :

mysql -u user -pPASSWORD --database=DATABASE_NAME -B -N -e "SHOW TABLES"  | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' | mysql -u user -pPASSWORD --database=DATABASE_NAME &

Vous devrez changer les paramètres « user » ; « PASSWORD » et « DATABASE_NAME ».


Source : http://www.commandlinefu.com/commands/view/1575/convert-all-mysql-tables-and-fields-to-utf8

Re-encoder une base de données en UTF-8

Si vous faites face à un problème de données mal encodées – par exemple vos « é » sont enregistrés dans la base en « Ã© » – je vous conseille cet article écrit par mon confrère :

http://renan-gautier.fr/articles/re-encoder-une-base-de-donnees-en-utf8/