Conversion d'une base de données de latin1 en UTF-8
Ces instructions fonctionneront pour toute base de données MySQL
installée sur un serveur Linux. Ces instructions sont spécifiquement
destinées aux utilisateurs WHMCS qui souhaitent passer à la nouvelle
norme UTF8, requise pour la prise en charge multilingue. Ces
instructions sont écrites en supposant que vous êtes connecté à
l'invite de commande de la boîte Linux avec l'accès requis.
* Sauvegarder la base de données MySQL
mysqldump --user=USERNAME -p --default-character-set=latin1
-c --insert-ignore --skip-set-charset -r whmcs_database.sql
DATABASE_NAME
* Convertir l'encodage Latin1 en UTF8
iconv -f ISO8859-1 -t UTF-8 whmcs_database.sql >
whmcs_database.utf8.sql
* Supprimez et recréez votre base de données
mysql --user=USERNAME -p --execute="DROP DATABASE DATABASE_NAME;
CREATE DATABASE DATABASE_NAME CHARACTER SET utf8 COLLATE
utf8_general_ci;"
* Modifiez le fichier SQL à l'aide d'un éditeur compatible UTF8,
comme Notepad+.
_** Vous pouvez ignorer cette étape et exécuter le script PHP de
l'étape 6 à la place_
Find and replace "CHARSET=latin1" with "CHARSET=utf8"
Find and remove "set latin1 collate latin1_general_ci" from table
field lines
Save the file
* Importer la base de données UTF8 mise à jour
mysql --user=USERNAME --max_allowed_packet=16M -p
--default-character-set=utf8 DATABASE_NAME < whmcs_database.utf8.sql
* Exécutez le script PHP suivant qui vérifie et fournit une mise
à jour SQL pour tous les champs de table pouvant nécessiter une
conversion de jeu de caractères.
http://billing.holodyn.com/dl.php?type=d&id=20
A l'inverse
utf8 par latin1
utf8mb4 par latin1