SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 251 visiteurs en ce moment

Accueil > Administration et BDD > Charsets > Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

8 janvier 2014 – par erational – 17 commentaires

13 votes

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.

Contrairement à SPIP 2, on ne peut pas convertir le site directement par la partie privée, il faut passer par le plugin Grenier :

  1. Télécharger et activer le plugin Grenier
  2. 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)
  3. Se rendre sur la page ecrire/?exec=base_convert_utf8
  4. 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).

Autres ressources

Dans les cas où cela ne fonctionne pas, consulter aussi
http://zzz.rezo.net/Reparer-le-char...
http://contrib.spip.net/utf8-vrac-d...

Dernière modification de cette page le 5 février 2016

Retour en haut de la page

Vos commentaires

  • Le 2 août à 03:19, par DD En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    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

    • Le 2 août à 19:52, par DD En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

      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

    • Le 12 août à 22:40, par neofutur En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

      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

  • Le 19 mai à 11:12, par Mickael En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    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" />

    • Le 28 juillet à 02:43, par neofutur En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin 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.

    • Le 28 juillet à 18:55, par b_b En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

      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

  • Le 29 janvier à 19:31, par Zeugme En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    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

    Répondre à ce message

  • Le 26 mai 2015 à 14:33, par DD En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    Ce plugin est excellent ! Je ne sais pas si c’est voulu mais il ne s’affiche pas dans la liste des plugins sur la page ecrire/ ?exec=charger_plugin

    dd

    Répondre à ce message

  • Le 14 mai 2014 à 18:18, par pverrier En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    Bonjour,

    J’ai un site sur lequel la conversion de la structure des tables ne s’est pas bien déroulée, au final certains champs se sont retrouvés en utf8, d’autres sont restés en latin1.
    Ce qui est dommage, c’est que les erreurs MySQL rencontrées ne sont pas affichées.
    Je propose donc l’ajout de cette ligne juste après l’affichage des requêtes de conversion exécutées :
    if (!_DEBUG_CONVERT && sql_errno()!=0)  print '<p style="color:red;">Erreur: '.sql_error().'</p>';

    Avec ces affichages j’ai pu identifier un premier problème lié à des index FULLTEXT, que j’ai pu régler.

    Puis un second lot d’erreurs lié à la conversion intermédiaire en BLOB comme ces exemples :

    SQL : ALTER TABLE spip_articles CHANGE statut statut blob   NOT NULL
    Erreur : BLOB/TEXT column 'statut' used in key specification without a key length

    SQL : ALTER TABLE spip_articles CHANGE export export blob  DEFAULT 'oui'
    Erreur : BLOB/TEXT column 'export' can't have a default value

    Provenant de cette portion de code (fichier base/convert_sql_utf8.php ligne 92) :

     $type_texte= $row2['Type'];
     $type_blob = "blob";
     if (strpos($type_texte,"text")!==FALSE)
       $type_blob = str_replace("text","blob",$type_texte);

    plus bas on exécute (L107) :
    "ALTER TABLE spip_$nom CHANGE $champ $champ $type_blob $default $notnull"

    En clair, le type destination est d’office blob sauf si le type orifinal est machinTEXT alors il devient machinBLOB. Je suppose qu’il faut passer provisoirement en binaire pour éviter une quelconque transformation des données lors du passage en utf8 (?). Toujours est-il que cette opération est refusée sur beaucoup de champs (généralement en VARCHAR). Faut-il s’en inquiéter ?

    Sont concernés les champs (soit avec une valeur par défaut, soit utilisés dans un index) :
    -  statut, export, lang, langue_choisie de spip_articles
    -  login, statut, source, webmestre de spip_auteurs
    -  objet, vu de spip_auteurs_liens
    -  langue_choisie de spip_breves
    -  media, mode, distant, extension de spip_documents
    -  objet, vu de spip_documents_liens
    -  objet, statut de spip_forum
    -  objet de spip_jobs_liens
    -  nom, impt de spip_meta
    -  objet de spip_mots_liens
    -  actif, installe, superieur, obsolete, attente de spip_paquets
    -  statut de spip_petitions
    -  prefixe de spip_plugins
    -  lang, langue_choisie de spip_rubriques
    -  statut de spip_signatures
    -  statut, moderation, miroir, oubli, resume de spip_syndic
    -  url, statut de spip_syndic_articles
    -  extension, inclus, upload, media_defaut de spip_types_documents
    -  url, type de spip_urls
    -  objet de spip_versions
    -  objet de spip_versions_fragments
    (sans parler des autres champs ou tables non installées par le core)

    Ca fait beaucoup de champs en erreur sur cette étape de conversion en BLOB ; cela dit, beaucoup d’entre eux contiennent des chaînes prédéfinies (objet, langue, statut) qui ne poseront pas de problème.

    J’ai modifié le script pour qu’il affiche les erreurs et des instructions SELECT DISTINCT champs à copier-coller dans phpMyAdmin pour vérifier que les données de ces champs en erreur n’ont pas subi de dommages.
    Il peut être téléchargé à cette adresse (site du Kit labos CNRS) : http://www.harmoweb.cnrs.fr/IMG/zip/convert_sql_utf8-2.zip

    Pour info, aucun de ces champs récalcitrants à la conversion en BLOB n’ont finalement posé de problème de conversion.

    • Le 15 mai 2014 à 10:23, par pverrier En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

      Une autre remarque : j’ai constaté que les champs `statut` varchar(10) NOT NULL DEFAULT '0', (présents dans de nombreuses tables) perdent leur valeur par défaut '0' après conversion des structures.

      Géré en ajoutant L105 :
      $default = $row2['Default'] || $row2[’Default’]===’0’ ?(" DEFAULT ".sql_quote($row2['Default'])):"";

    Répondre à ce message

  • Le 8 mai 2014 à 18:35, par Nadir En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    Super boulot, cela m’a pris à peine 30s. Bravo !!!

    Répondre à ce message

  • Le 1er avril 2014 à 16:04, par pverrier En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    Bonjour et merci pour ce plugin qui m’a permis de convertir un site iso-8859-1 en utf-8 ; une remarque cependant, ce site utilisait le plugin Agenda et les événements n’étaient pas convertis (table spip_evenements) ; à cette fin j’ai ajouté dans grenier/base/convert_utf8.php la ligne
    ’spip_evenements’ => ’titre’,
    (après ’spip_articles’), cela a fonctionné.

    Répondre à ce message

  • Le 19 février 2014 à 21:45, par Ben. En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    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 et ecrire/?exec=base_convert_sql_utf8 Et hop c’est nickel !!!

    merci Erational

    Répondre à ce message

  • Le 13 janvier 2014 à 23:16, par peter bang En réponse à : Convertir un site SPIP 3 en utf-8 avec le plugin Grenier

    Voici un cas de figure qui se présente à moi : j’ai des tables en utf8 et d’autres en iso 8859. Faut-il procéder avec Grenier ?

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Adaptive Images

    15 novembre 2013 – 66 commentaires

    Un plugin pour permettre aux sites responsive d’adapter automatiquement les images de la page à l’écran de consultation. Adaptive Images, que l’on pourrait traduire par Images adaptatives, désigne la pratique qui vise à adapter les taille, (...)

  • Métas

    8 août 2009 – 50 commentaires

    Ce petit plugin permet l’ajout, depuis l’espace privé, de metatags aux articles et rubriques de SPIP, ainsi que la mise en exergue de mots importants.

  • Brownie

    6 juillet 2012 – 43 commentaires

    Brownie est une adaptation pour Zpip du thème du même nom initialement développé par Egrappler.com. Présentation Brownie est un thème Responsive à deux colonnes. La démonstration ci-dessous utilise la version 2.0.0 de Brownie, la dist de SPIP3 (...)

  • Métas +

    3 décembre – 13 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Acces Restreint 3.0

    11 décembre 2008 – 785 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

Ça spipe par là