|
16 juillet 2008. Source: http://blog.neovov.com/index.php?2007/03/06/143-convertir-un-site-en-utf-8 Configurer le serveur pour ne plus avoir de problèmes d'encodage ApacheApache est configuré par défaut pour fournir du latin1 (ISO-8859-1); il faut donc, dans le fichier de configuration (/etc/apache2/apache2.conf), modifier cette ligne: AddDefaultCharset ISO-8859-1 en la remplaçant par: AddDefaultCharset UTF-8 N'oubliez pas de redémarrer Apache. Au moyen d'un fichier .htaccesshttp://ehess.dynamiques.fr/ecole/index.php?id=18 http://www.w3.org/International/questions/qa-htaccess-charset
MySQLPour la création d'une base précisez le CHARSET (l'encodage à adopter) et la COLLATION (l'attitude que MySQL doit avoir par rapport aux données). Pour rendre les données insensibles à la casse il suffit d'adopter une collation utf8_general_ci (par défaut). (Attention: dans MySql, c'est: utf8 et non utf-8.)
PHPLe support natif de utf-8 est prévu seulement pour la future version php6, mais il reste toujours une alternative pour rendre son PHP compatible UTF-8: mbstring. mbstring est une extension (un "plugin" pour PHP si vous voulez) permettant de gérer l'encodage des caractères de manière très complète. Vérifier que l'extension est activée dans le fichier de configuration (/etc/php5/apache2/php.ini) sachant que mbstring est activé par défaut sous Debian. Ensuite chercher [mbstring] pour arriver à la configuration de l'extension, et appliquer cette configuration : mbstring.language=UTF-8 Il reste quand même un problème : UTF-8 n'est pas codé sur un nombre fixe de bits. Cela a pour conséquence de fausser de simples fonctions comme strlen() qui se base sur le nombre d'octets pour renvoyer la taille d'une chaîne. Heureusement il y a une alternative: mbstring est capable d'intercepter toute les fonctions de traitement de chaîne et de les remplacer par l'équivalent mbstring (remplacer strlen() par mb_strlen()). Pour ce faire il suffit de changer un paramètre de la configuration : mbstring.func_overload = 7 La valeur 7 permet de changer toute les fonctions qui ont quelque chose à voir avec les chaînes de caractères. 0 désactive l'interception ; N'oubliez pas de redémarrer Apache, et pensez à vérifier que mbstring est correctement lancé (avec un phpinfo() par exemple).
Pour configurer Typo3 avec encodage utf-8http://xavier.perseguers.ch/tutoriels/typo3/configuration/utf-8.html
|
