Et SPIP 4 ?
Cet article est une archive pour les sites en SPIP 3 qui n’étaient pas encore en utf-8
Pour SPIP 4, le plugin grenier ne propose plus ces fonctions de conversion en utf-8.
La solution est d’utiliser spip-cli qui fournit une commande en ligne pour convertir en utf-8 (pour un site en mysql)
spip sql:convert:toutf8
Convertir un site SPIP 3 en utf-8 avec le plugin Grenier
SPIP 3 fonctionne nativement avec l’encodage universel unicode utf-8.
Sur certains sites (par exemple sur une mise à jour), on peut avoir un site qui est resté en iso-latin ce qui n’est pas conseillé (source de bugs, d’incompatibilité, ...) .
Voici la manière de le convertir simplement en utf-8.
- Télécharger et activer le plugin Grenier
- Faire un sauvegarde de votre site (à la fois en créant un dump SPIP mais aussi un export MySQL sous phpMyAdmin pour pouvoir restaurer l’existant en cas de problème)
- Se rendre sur la page
ecrire/?exec=base_convert_utf8
- Lancer le script !
Autre script lié à l’encodage de la base de donnée
Le plugin grenier dispose aussi d’un autre script qui lui permet de modifier l’interclassement de votre base pour le repasser en utf-8 si ce n’est pas le cas.
Par exemple : vous avez un site SPIP déclaré en unicode mais l’interclassement est resté en latin. (Si vous l’éditez sous phpmyadmin, les champs sont encodés bizarrement).
Dans ce cas, il faut appeler le script ecrire/?exec=base_convert_sql_utf8
Cas d’une base sqlite
Pour le cas très particulier des personnes avec une base en Sqlite.
Voici les lignes de commandes requises pour convertir votre base (astuce fournie par ben).
echo "On dump la base spip.sqlite dans un fichier dump.sql"
echo ".dump" | sqlite3 spip.sqlite > dump.sql
echo "On convertit la base en utf8 à l'aide de l'utilitaire iconv"
iconv -f iso-8859-1 -t UTF-8 < dump.sql > dump-utf.sql
echo "On reconstruit un fichier sqlite à partir du dump sql utf8"
echo ".restore" | sqlite3 spiputf.sqlite < dump-utf.sql
echo "On met de coté la base iso"
mv spip.sqlite spip.sqlite.iso
echo "La base utf est maintenant la base spip "
mv spiputf.sqlite spip.sqlite
echo "Victoire (normalement) "
Autres ressources
Dans les cas où cela ne fonctionne pas, consulter aussi
http://zzz.rezo.net/Reparer-le-char...
Bouée de sauvetage utf8
Pour les versions SPIP 2.1
Pour les anciennes versions de SPIP, le plugin grenier n’est pas nécessaire, les scripts sont disponibles à l’adresse suivante depuis la partie privée :
-
?exec=convert_sql_utf8
-
?exec=convert_utf8
Discussions par date d’activité
15 discussions
Bonjour merci pour ce plugin très utile
je viens d’installer la dernière version du plugin v1.0.1 sur un SPIP 4.0.1 (php 7.4) mais quand je cherche à le lancer avec ecrire/ ?exec=base_convert_utf8 j’ai le message d’erreur suivant
Fichier base_convert_utf8 introuvable. Effectivement le plugin v1.0.1 contrairement à la version 0.3.3 n’a pas de sous-dossier « base » où se trouve le fichier convert_utf8.php.
Est-ce qu’en ajoutant le sous-dossier base de la v 0.3.3 dans la v1.0.1, est-ce que le plugin fonctionnera correctement avec SPIP 4.0 ?
Cordialement
Re-bonjour
Dans le readme du plugin, je viens de voir « Dans votre code PHP, ajouter
include_spip('inc/vieilles_defs');
pour charger toutes ces vieilles fonctions. » Pouvez-vous m’indiquer dans quel fichier php de spip faut-il ajouter cette ligne de code ?Joyeuses fêtes
Bonjour et bonne année
à bien y regarder le plugin v1.0.1 ne fait plus la conversion de base. Il faut alors que je repasse en spip 3.2 et que j’utilise la v0.3.3 ?
Merci
Bonjour,
J’ai le même souci... avec la même erreur Fichier base_convert_sql_utf8 introuvable, sur un spip 4.0.9
Merci
Effectivement les fonctions pour convertir les bases ont été rétirées du plugin grenier pour les sites SPIP 4+
Il existe un autre solution en utilisant spip-cli (j’ai mis à jour l’article et les liens ad hoc)
Par contre, cela requiert un peu de connaissances techniques.
Donc si vous partez d’un SPIP 3, il est conseillé de plutôt convertir en utf-8 puis de passer en SPIP 4.
Répondre à ce message
pffiouf,
grace à ta contribution, j’ai réussi à repasser la base mysql d’un site en UTF-8 et ultime gageure : sans accès FTP !
merci bien !
Répondre à ce message
Bonjour,
Merci pour le plugin et les diverses options proposées mais malheureusement rien ne fonctionne pour moi à partir du plugin Grenier.
Je viens de mettre à jour le site www.culturejazz.fr (hébergement mutualisé OVH) ce 28 décembre vers la dernière version de SPIP avec Spip_loader. Ça s’est globalement bien passé mis à part un problème d’encodage des caractères accentués (et autres « spéciaux ») qui résiste aux deux syntaxes proposées pour « Grenier », ci-dessus. La seconde me liste un certain nombre de modifications mais rien n’a changé !
J’avais testé aussi avant cela la modification de l’interclassement de la base par phpMyAdmin.
NB : J’ai profité de la mise à jour pour passer de PHP 5.6 à PHP 7.2... Cela peut-il avoir une incidence ?
Je précise que dans l’interface privée de SPIP, seul le rédactionnel lié au contenu du site est affecté. Les menus, entêtes etc. de SPIP s’affichent sans erreurs d’accents etc.
Quelqu’un a-t-il une idée ? une solution ?
Merci d’avance et belle fin d’année à vous !
Th.
Bonjour,
Quelle était la version précédente de SPIP ?
Avez-vous fait une sauvegarde avant la migration ?
Si vous avez une sauvegarde :
Tenez-nous informé !
Bonjour et bonne année 2020 à vous !
Merci pour votre réponse et votre aide. Tout est maintenant rentré dans l’ordre : base en UTF8, SPIP 3.2.7 (à la place de 3.0.1) et PHP 7.2 (contre 5.6 précédemment) !
J’ai suivi vos conseils mais sans avoir le courage de réinstaller le vieux Spip3.0 !
Résumé de ma procédure :
- retour à php 5.6 (via le « manager » OVH) avec Spip 3.2.7.
- tentative de restauration de la sauvegarde antérieure à la mise à jour depuis l’interface de SPIP. Message de réussite mais... base visiblement effacée !!
- Retour au manager OVH pour restaurer leur propre sauvegarde de la base antérieure à la MAJ (merci OVH !) ;
>> Et là, j’avais récupéré des textes lisibles et accentués !
- Un petit nettoyage grâce au plugin « Grenier » (merci à vous !). Le premier script me dit que la base est en UTF-8, le second semble apporter des corrections.
- Vérification de la base via phpMyAdmin : tout est en ordre ! Ouf !
Eh bien, voilà une année qui commence bien !
Il reste des petits réglages à reprendre sur le site mais l’essentiel est préservé.
Moralité : prudence avec les mises à jour un peu trop « ambitieuses » !
Cordialement,
TG
Merci pour le retour d’expérience et bravo pour le passage en SPIP 3.2.7 en utf-8 !
Une année qui commence bien :)
Répondre à ce message
Un grand merci pour ce plugin, depuis ce matin 11h00 je me suis retrouvé avec des ? à la place des accents, à la suite d’un changement de version de mysql. Recherches sur Google, forums, plein de tests et puis rien et là en 3 minutes c’est corrigé ! La première syntaxe m’a dit que mon site était en utf8, la 2 eme a tout réparé !
ouf !
Répondre à ce message
Bonjour,
J’ai essayé d’installer ce plugin, mais toutes les deux versions sont marquées soit « version incompatible » (0.3.2) soit « version obsolète » (0.2.6). Mon site est actuellement sous version SPIP 3.1.8 [23955].
Pourriez-vous m’expliquer comment faire, SVP ?
D’avance merci.
bonjour,
d’après https://plugins.spip.net/grenier.html
Pour SPIP 3.1.8, il faut donc utiliser la version 0.2.6 ne devrait pas être indiquée obsolète..
il faudrait que tu effaces la version grenier 0.3.2 de ton serveur et à la limite ré-télécharge la version 0.2.6
Répondre à ce message
Soit un SPIP 1.9.x avec une base en iso-8859-1. En local après avoir importé la base mysql. Je connecte un nouveau SPIP3 tout frais. La migration de la base se déroule bien de 1.9 vers 3. Mon site est toujours en iso-8859-1 quand je vais dans
ecrire/?exec=configurer_langue
.J’active le plugin grenier (
svn co svn://zone.spip.org/spip-zone/_core_/plugins/grenier
) .Puis je vais visiter
ecrire/?exec=base_convert_utf8
etecrire/?exec=base_convert_sql_utf8
Et hop c’est nickel !!!merci Erational
Bonjour,
J’ai suivi exactement cette procédure mais résultat non satisfaisant, toujours des problèmes de codage dans les tables et dans le site.
En fait quand j’installe Spip 3.2, il m’affiche une langue principale en utf8 alors que les tables sont encore en iso-8859-1...
Répondre à ce message
le lien vers le plugin est erroné :
il y a 3 versions :
grenier_30
grenier_31
grenier_32
Merci pour ce plugin bien pratique !
Je viens de mettre les liens a jours :-)
Répondre à ce message
Sur la page / ?exec=fulltext en haut j’ai X fois la mention « Une incohérence entre le charset de votre site et celui des tables de votre base de données risque de fausser les recherches avec caractères accentués :convertir en UTF-8 pour restaurer la cohérence »
j’ai installé la version du plugin Grenier sur un SPIP 3.1.1 et j’ai Fichier convert_sql_utf8 introuvable pour / ?exec=convert_sql_utf8
pour ?exec=base_convert_utf8 j’ai « Votre site est déjà en utf-8, inutile de le convertir... »
Est-ce qu’avec le bon encodage en UTF-8 la recherche différencie les caractères accentués ? Pour l’instant c’est bien le cas sur mon site (mais ce n’est pas la panacée car beaucoup d’internautes ne les tapent pas) et donc une recherche sur « bebe » ne retournera rien même s’il y a tout bien de « bébé » dans les textes.
Merci
dd
J’ai un autre effet de bord lorsque le plugin grenier est activé : tout le contenu éditorial au centre de la page ecrire/ ?exec=accueil disparaît (liste des derniers articles, etc.)
dd
ici aussi ecrire/ ?exec=base_convert_sql_utf8 donne juste :
Fichier base_convert_sql_utf8 introuvable
concernant le probleme "une recherche sur « bebe » ne retournera rien même s’il y a tout bien de « bébé » dans les textes."
je suis a 100 % d accord, il faudrait faire comme google, et ignorer totalement les accents lors d une recherche
Répondre à ce message
Merci pour ce plugin utilisé avec Spip 3.0.17
Pour info, le plugin n’était pas visible l’admin, et l’url « ecrire/ ?exec=base_convert_utf8 » restait introuvable.
Il a fallu que je rajoute ceci à la fin du fichier paquet.xml pour l’activer et accéder au script de conversion :
<menu nom="grenier" titre="grenier:grenier" parent="menu_squelette" icone="images/grenier-32.png" action="configurer_grenier" />
ici aussi la version 3.0 ne fonctionne pas, il apparait bien dans la liste de plugins inactifs, mais apres activation « reussie » il reste dans la liste des inactifs, et les liens de conversion ne fonctionnent pas.
Pour info, je viens de tester sous SPIP 3.0.23-dev svn avec la version 0.2.4 (elle aussi svn) du plugin et je ne reproduis pas. Le plugin s’active bien, je le vois dans la liste des plugins actifs et j’ai bien accès à la page de conversion...
Répondre à ce message
Bonjour,
Merci pour ce plugin bien efficace avec Spip 3.0.
J’ai malheureusement fait la mise à jour vers Spip 3.1 et là le plugin est incompatible.
Il y a-t-il une solution ?
Déjà merci de votre réponse
Salut et merci pour le signalement, on va corriger ça au plus vite. En attendant, tu peux activer le plugin sur ue 3.1 en modifiant la ligne suivante dans le paquet.xml du plugin :
http://zone.spip.org/trac/spip-zone/browser/_core_/branches/spip-3.0/plugins/grenier/paquet.xml#L6
Il suffit de remplacer
3.0.*
par3.1.*
C’est parfait !
Merci beaucoup pour votre efficacité et votre réactivité !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |