Vos réactions aux articles

Le FLE en temps de crise : enseignons pour vivre, pas pour certifier

Katerina Tsolakidou

Si, bien sûr. C'est l'excellence qui s'intéresse à l'essence des choses et non à leur image. J'aime bien le terme « noble » !

Lire le commentaire →

Popi Karagiannidi : quand l’IA dynamise le cours de FLE

Olivier C.

Une approche inspirante ! Grâce à l’IA, cette méthode enrichit considérablement la variété des ressources disponibles, permettant aux enseignants (…)

Lire le commentaire →

Faut-il changer d’IA ? Pourquoi les enseignants gagneraient à rester avec ChatGPT

CHRISTINA CHRISTODOULOU

Pourquoi changer un outil si ce qu'on utilise déjà nous gagne du temps. Il retient les préférences pédagogiques, s’adapte au style d’enseignement (…)

Lire le commentaire →

Le modèle Speaking de Hymes

moiraida

Pouvez-vous publier plus d'exemples?Comment on l'utilise dans l'exploitation d'un document?Merci

Lire le commentaire →

Comment fabriquer 10 puzzles textuels en moins de 10 minutes ?

isabellebarriere

ooooooooh! Pourquoi vais-je si peu souvent sur le site de TV5 ? _ Il s'améliore de jour en jour... _ merci pour le truc ! ;-)

Lire le commentaire →
Faire « médias » d'un « médias »...

Convertir une ancienne base SPIP de latin1 en UTF-8 (utf8mb4). Le cas Gallika

Comment convertir une ancienne base SPIP déclarée en latin1 vers UTF-8 (utf8mb4) ? Le cas de Gallika montre comment examiner les caractères déformés dans Adminer, préparer une copie de test et vérifier les textes et les extensions avant la mise en ligne. Douze jours ont séparé la restauration de la copie et la validation finale.

Résumé rédigé avec l’aide d’une intelligence artificielle.

Πώς μετατρέπουμε μια παλιά βάση δεδομένων SPIP από latin1 σε UTF-8 (utf8mb4); Η περίπτωση του Gallika δείχνει πώς εντοπίζουμε αλλοιωμένους χαρακτήρες στο Adminer, ετοιμάζουμε ένα δοκιμαστικό αντίγραφο και ελέγχουμε τα κείμενα και τα πρόσθετα πριν θέσουμε σε λειτουργία τη νέα βάση. Από την επαναφορά του αντιγράφου έως την ολοκλήρωση των ελέγχων μεσολάβησαν δώδεκα ημέρες.

Σύνοψη συντεταγμένη με τη βοήθεια τεχνητής νοημοσύνης.

Sur le site, on lisait « médias ». Dans la base, on voyait parfois « médias ».

Ta base SPIP est déclarée en latin1, tes pages sont en UTF-8 et les accents s’affichent différemment selon l’outil que tu utilises ? C’était le cas de Gallika. Voici comment j’ai préparé une copie de test, vérifié les résultats de la conversion et mis en ligne la base en utf8mb4. Douze jours ont séparé l’import de la copie et la validation finale.

La première version publique de SPIP [1] est sortie le 1er juillet 2001, il y a plus de vingt-cinq ans. Gallika a fait partie des premiers sites à l’adopter. Au fil des mises à jour, le logiciel a évolué et la base a conservé des textes enregistrés selon les conventions de l’époque.

En juin 2025, après une migration chez mon hébergeur, des « � » sont apparus au fur et à mesure que je vidais le cache de SPIP. J’ai restauré une sauvegarde. Un petit script qui lisait la base avec une connexion en latin1 [2] affichait correctement les textes testés. Certaines pages de SPIP, elles, présentaient encore des défauts.

Un an plus tard, les pages publiques affichaient généralement les accents correctement, mais je retrouvais des « médias » dans Adminer [3].

Comprendre ce que la base contient

Sur Gallika, les pages étaient en UTF-8 [4], alors que SPIP dialoguait avec la base en latin1. Dans la table des réglages de SPIP, cela se traduisait par « charset = utf-8 » et « charset_sql_connexion = latin1 ».

Il fallait examiner trois choses : l’encodage déclaré pour les colonnes, celui de la connexion à la base et les octets réellement enregistrés. Sur Gallika, une partie des textes semblait avoir été enregistrée en UTF-8 dans des colonnes déclarées en latin1. Le même mot pouvait donc être lisible sur le site et déformé dans Adminer.

Une conversion globale fondée sur la seule déclaration « latin1 » risquait de recoder des textes dont les octets étaient déjà en UTF-8.

Démarrer sur une copie du site

Le 11 août 2026, j’ai restauré une sauvegarde SQL [5] dans une base de test. La copie faisait 114 Mo et contenait 910 articles. Pour le travail technique, j’ai demandé à ChatGPT de préparer les diagnostics et les commandes à lancer depuis PowerShell [6]. Je les ai exécutés sur la copie, puis je lui ai transmis les résultats pour qu’il puisse ajuster la suite.

Si tu pars d’un ancien SPIP, voici comment préparer le premier essai.

  • Restaure une sauvegarde dans une base distincte et branche dessus une copie de SPIP. Vérifie dans l’espace privé que cette copie utilise bien la base de test avant de lancer une commande qui modifie les données.
  • Relève l’encodage déclaré pour les colonnes qui contiennent les textes, puis le réglage de connexion SQL de SPIP. Garde ces valeurs avec la sauvegarde.
  • Choisis des textes dont tu connais l’écriture exacte. Un titre avec des accents, un mot-clé en grec et un passage mêlant les deux langues font de bons témoins. Note comment ils s’affichent dans Adminer, dans l’espace privé et sur le site public.
  • Commence par un petit échantillon et compare les mêmes textes après l’essai. Si un résultat se dégrade, repars de la copie d’origine avant de tester une autre méthode.

Combien de temps faut-il prévoir ?

Douze jours se sont écoulés entre l’import de la copie, le 11 août, et la validation de la mise en ligne, le 23 août. Ce délai comprend les essais et quelques jours de vérification. Je n’ai pas relevé la durée d’exécution des commandes SQL. Pour organiser ta propre migration, réserve du temps pour utiliser la copie après la conversion et revenir sur les écarts que tu constates.

Sur Gallika, un contrôle a notamment signalé huit réglages de SPIP ou de ses extensions dont les données sérialisées étaient illisibles [7]. Il fallait comparer ces réglages à leur état initial pour déterminer si le problème existait déjà. Prévois donc de tester les extensions dont tu te sers, même si les articles s’affichent correctement.

Vérifier la copie avant de la mettre en ligne

Reprends les titres, les mots-clés et les passages choisis au départ. Vérifie-les dans l’espace privé et sur le site public après avoir vidé le cache de la copie. Enregistre aussi un brouillon avec des accents et, si ton site est multilingue, plusieurs alphabets. Ferme-le, puis rouvre-le pour vérifier que l’écriture et la lecture fonctionnent toutes les deux. Ouvre enfin les pages de configuration des extensions que tu utilises et essaie les fonctions qui en dépendent.

Avant de basculer, vérifie aussi si des articles ou des réglages ont été modifiés sur le site public depuis la création de la copie. Si c’est le cas, intègre ces changements à la version convertie et refais les contrôles. Garde une sauvegarde récente de la production et repère les réglages à rétablir si tu dois revenir à l’ancienne installation.

Chez Gallika, la version convertie a tourné quelques jours avant la validation définitive. Le 23 août, elle a repris le nom « spip », et j’ai conservé l’ancienne installation sous le nom « spip-old ». Après des mois à voir le même mot s’écrire de deux façons, le dernier geste aura juste été… de renommer deux dossiers.

__________

[1] SPIP est un logiciel libre qui permet de rédiger, de classer et de publier des articles sur le Web. Voir L’histoire minuscule et anecdotique de SPIP.

[2] latin1 désigne ici un ancien jeu de caractères utilisé par MySQL. Il couvre notamment les lettres accentuées du français, mais pas l’alphabet grec.

[3] Adminer est un outil qui permet de consulter et d’administrer une base de données depuis un navigateur.

[4] UTF-8 représente les caractères sous forme d’octets. Il permet notamment d’écrire du français et du grec dans un même texte. Dans MySQL, le jeu de caractères utf8mb4 prend en charge tout UTF-8.

[5] SQL est le langage utilisé pour interroger ou modifier une base de données. Une sauvegarde SQL contient les instructions qui permettent de recréer les tables et de recharger leurs données.

[6] PowerShell est un outil de Microsoft qui permet de piloter facilement un ordinateur en tapant des commandes. Je m’en suis servi depuis mon PC pour me connecter au serveur de Gallika et y lancer les vérifications.

[7] La sérialisation permet d’enregistrer plusieurs valeurs sous la forme d’un seul texte. Dans le format utilisé ici, la longueur de certaines chaînes est exprimée en octets. Si le recodage change cette longueur sans mettre à jour le nombre inscrit, le réglage peut devenir illisible.


Professionnel de l’enseignement supérieur et de la recherche depuis plus de trente-cinq ans, ancré en linguistique et en didactique des langues, avec une spécialisation en méthodologie de l’enseignement-apprentissage, en évaluation des compétences en langues et en pédagogie numérique.

Lien vers Page perso