Code de caractère : Différence entre versions
(Nouvelle page : 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...) |
(→Rendre compatible un module existant) |
||
| (10 révisions intermédiaires par 2 utilisateurs non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
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. | 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. | 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. | ||
| Ligne 13 : | Ligne 15 : | ||
* les fichiers joints aux articles | * les fichiers joints aux articles | ||
* Les modules complémentaires | * Les modules complémentaires | ||
| + | |||
| + | |||
| + | Lors de la conversion de la base de données, 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. | ||
| + | |||
| + | Pour lancer le programmer il faut utiliser l'url suivante : <code>http://example.com/index.php?tg=charset</code> | ||
| + | |||
| + | == 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 [[Fichiers spécifiques des modules#addonini.php|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> | ||
| + | |||
| + | la ou les valeurs de <code>mysql_character_set_database</code> doivent suivre la règle de nommage des encodage de MySql. | ||
| + | |||
| + | 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 [http://www.php.net/mbstring mbstring] de php. Le paramétrage de mbstring est déjà effectué dans le noyau d'Ovidentia, il suffi d'appeler [http://www.php.net/manual/en/ref.mbstring.php les fonctions] à la place des fonctions standard de PHP. | ||
| + | |||
| + | |||
| + | |||
| + | Pour s'assurer que les nouvelles fonctions (notamment mb_string) sont bien présentes, il est nécessaire d'actualiser la version minimum d'Ovidentia requise pour le bon fonctionnement du module: | ||
| + | |||
| + | <source lang="ini"> | ||
| + | ov_version="6.7.92" | ||
| + | </source> | ||
| + | |||
| + | |||
| + | Si le fichier [[Fichiers spécifiques des modules#addonini.php|addonini]] doit contenir des caractères spéciaux, il est possible de modifier son encodage mais il faut le préciser à l'aide du paramètre <code>encoding</code> | ||
| + | |||
| + | <source lang="ini"> | ||
| + | encoding="UTF-8" | ||
| + | </source> | ||
| + | |||
| + | La valeur du paramètre <code>encoding</code> doit suivre la norme ISO (UTF-8, ISO-8859-15 ...) | ||
| + | |||
| + | == Rendre compatible un skin == | ||
| + | |||
| + | Ajouter sous la balise head du fichier page.html : | ||
| + | |||
| + | <source lang="xml"> | ||
| + | <meta http-equiv="Content-type" content="{ sContent }" /> | ||
| + | </source> | ||
| + | |||
| + | qui sera remplacé par le html suivant : | ||
| + | |||
| + | <source lang="xml"> | ||
| + | <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-15" /> | ||
| + | </source> | ||
| + | |||
| + | ou | ||
| + | |||
| + | <source lang="xml"> | ||
| + | <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> | ||
| + | </source> | ||
Version actuelle en date du 15 avril 2009 à 14:27
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ées, 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.
Pour lancer le programmer il faut utiliser l'url suivante : http://example.com/index.php?tg=charset
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>
la ou les valeurs de mysql_character_set_database doivent suivre la règle de nommage des encodage de MySql.
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.
Pour s'assurer que les nouvelles fonctions (notamment mb_string) sont bien présentes, il est nécessaire d'actualiser la version minimum d'Ovidentia requise pour le bon fonctionnement du module:
<source lang="ini"> ov_version="6.7.92" </source>
Si le fichier addonini doit contenir des caractères spéciaux, il est possible de modifier son encodage mais il faut le préciser à l'aide du paramètre encoding
<source lang="ini"> encoding="UTF-8" </source>
La valeur du paramètre encoding doit suivre la norme ISO (UTF-8, ISO-8859-15 ...)
Rendre compatible un skin
Ajouter sous la balise head du fichier page.html :
<source lang="xml"> <meta http-equiv="Content-type" content="{ sContent }" /> </source>
qui sera remplacé par le html suivant :
<source lang="xml"> <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-15" /> </source>
ou
<source lang="xml"> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> </source>