Code de caractère

De OviWiki
Révision de 23 décembre 2008 à 10:03 par Paul (discussion | contributions) (Rendre compatible un module existant)

Aller à : navigation, rechercher

A partir de la version 6.7.92 il est est possible d'installer Ovidentia en UTF-8. Dans le programme d'installation, une liste déroulante permet de choisir entre l'encodage latin1 ou utf8.

Changer l'encodage

Quand on dispose déjà d'une installation existante d'Ovidentia avec une version plus ancienne, l'encodage de la base de donnés et du HTML est latin1 (ISO-8859-15). Pour utiliser Ovidentia en UTF-8, il est préférable de partir d'une nouvelle installation car la conversion du contenu peut poser problème dans certains cas notamment au niveau des fichiers enregistrées sur le disque dur.

Néanmoins, il est possible de migrer la base de donnés de latin1 vers utf8 à l'aide d'un script intégré dans Ovidentia. Les éléments traités par ce script sont :

  • La base de donnés
  • Les fichiers du gestionnaire de fichier (en option)

Les éléments risquant de poser problème sont :

  • les fichiers joints aux posts de forum
  • les fichiers joints aux articles
  • Les modules complémentaires


Lors de la conversion de la base de donnés, toutes les tables sont converties. Si la base utilisée par Ovidentia contiens des tables qui ne doivent pas êtres converties, il faudra les réimporter après la converion ou convertir toutes les tables à la main.


Rendre compatible un module existant

Par défaut, la nouvelle version va considérer qu'un modules n'est compatible qu'avec une base de donnés en latin1 donc sur une base en UTF-8, le modules cessera de fonctionner. Dans le fichier addonini du module, il est possible de spécifier avec quel encodage de la base le module est compatible :

<source lang="ini">

le module peut fonctionner en latin1 ou en utf8

mysql_character_set_database="latin1,utf8" </source>

Avant d'autoriser le module dans plusieurs encodages, il est du devoir du developpeur de s'assurer que le module est bien compatible. Pour cela, il faut utiliser la librairie mbstring de php. Le paramétrage de mbstring est déjà effectué dans le noyau d'Ovidentia, il suffi d'appeler les fonctions à la place des fonctions standard de PHP