Geeklog France

Convertir un site geeklog de ISO-8859-1 vers UTF-8

See English version

Nous pouvons être amené à changer l'encodage complet de la base de donnée d'un site lorsque nous souhaitons proposer un site multi langues avec l'utilisation de caractères spécifiques, ou pour utiliser un plugin particulier par exemple.

En suivant les étages ci dessous, fortement inspirée par la méthode décrite par Mark Evans de www.gllabs.org, vous devriez être en messure de réussir cette opération effectuée sous windows XP.

Avant toute opération sur la base de données empécher les visiteurs de votre site de se connecter à celle-ci Dans le config.php,

 $_CONF['site_enabled'] = false;

Faite aussi une sauvegarde de cette base de données que vous mettrez de coté. Profitez en pour sauvarger votre thème (layout) ainsi que les fichiers customisé (config.php, lib-custom.php…).

1. Exporter la base de données

Avec phpmyadmin par exemple, dans l'onglet “Exporter” sélectionner la base de données en question, cocher “Transmettre”. La base de donnée est alors sauvegarder sur votre disque dur avec l'extension .sql (localhost.sql)

2. Remplacer les CHARSET

Ouvrir le fichier avec Notepad ++, dans le menu Recherche sélectionner remplacer. Saisir Rechercher: CHARSET=latin1 et Remplacer par : CHARSET=utf8. Cliquer sur remplacer tout. De même vérifier que les COLLATE soit utf_general_ci

Vers la ligne 15 supprimer les 2 lignes suivantes (si nécessaire) :

    CREATE DATABASE `**********` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

    USE `*********`;

Puis enregistrer le fichier.

3. Convertir les caractères

Vérifier que tous les caractères de la base soit au format UTF-8. Pour cela utiliser le programme libiconv disponible dans l'outil GetText. Saisir la commande suivante dans la console de ligne de commandes :

    iconv –c –f utf-8 –t utf-8 < input.sql > output.sql

où input.sql est le nom du fichier source et output.sql le nom du fichier un fois les caractères convertis. Ouvrir le fichier output.sql avec Notepad ++.

4 . Changer l'interclassement

A l'aide de phpmyadmin changer l'interclassement pour la connexion MySQL, choisissez utf_general_ci

5. Effacer les tables

Toujours avec phpmyamdmin : Supprimer (drop) toutes les tables de la base de données. Ne supprimez pas la base de données.

6 . Importer les nouvelles tables

Avec la fonction Importer de phpmyadmin, importer le fichier output.sql sélectionner le jeu de caractères du fichier utf-8. Vérifier ensuite dans l'onglet structure que l'interclassement est maintenant utf8_general_ci.

7. Modifier les languages

Dans le config.php changer le language par défaut :

$_CONF['language']        = 'french_france_utf-8';
$_CONF['default_charset'] = 'utf-8';

$_CONF['locale']          = 'fr_FR.utf-8';

Supprimer toutes les traductions qui ne sont par utf-8.

Avec phpmyadmin il faut modifier tous les utilisateurs qui on sélectionné un language non utf-8. Pour cela sur la table gl_users après avoir visualisé les languages à modifier, cliquer sur l'onglet SQL et saisir la requête (query) :

UPDATE gl_users set language="english_utf-8" WHERE language="english";

Répéter l'opération pour chaque language.

8. Enfin quelques vérifications

Rendre le site accessible puis afficher quelques billets et quelques posts du forum pour vérifier que tout est en ordre et les caractéres bien affichés. Vérifier aussi les flux de syndication.

Connecté en tant que : Guest (Guest)
iso-8859-1_vers_utf-8.txt · Dernière modification: 2008/07/29 15:53 par ::Ben
 

Download geeklog

Last version 1.8.1

Espace Membre





Devenir membre
Enregistrez-vous

Mot de passe oublié ?

Change language

Categories

  • Geeklog (38)
  • Plugins (53)
  • Thèmes (17)
  • My cart

    Votre panier (0 article)

    Votre panier est vide!

    0.00 EUR

    Visual Theme Switcher

    Test out available themes by selecting from one of the 6 available themes or give the Visual Switcher a try:

    Follow us on twitter

    En ligne

    Visiteurs: 7