JeuWeb - Crée ton jeu par navigateur
Convertir son site en Utf 8 - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Convertir son site en Utf 8 (/showthread.php?tid=2815)

Pages : 1 2


Convertir son site en Utf 8 - Kassak - 29-07-2008

Je ne pensais pas que convertir mon site qui est en ISO vers un UTF 8 serait aussi ardue, je ne pensais pas qu'il y avait autant de chose à faire...

Tout d'abord une personne ayant déjà fait cette conversion pourrait m'être bien utile, car ayant pas mal cherché sur le net, je trouve beaucoup de manière différente d'y arriver, et je pense autant de résultat différent à la fin.

Pour mon cas, après vérification, bien que mon site soit en ISO, ma base est en Utf8.

Toutes mes tables ont encore un interclassement latin1_swedish_ci, je me demande si en changeant seulement ceci par utf8_bin ou utf8_general_ci cela convertira ma table et les données en utf8 ?

Ensuite, pensez vous que d'utiliser QUE utf8_bin comme interclassement ( sensible à la casse contrairement a utf8_general_ci ) soit une bonne solution ? Je n'ai pas trop envie de jongler entre les deux pour chaque table, chaque champ... Et à part ces deux la, vous n'en utilisez pas d'autre?

Je n'ose pas m'aventurer dans une telle tâche sans savoir exactement ce que je fais, tant cette dernière peut mettre un gros bordel si elle est mal faites.


RE: Convertir son site en Utf 8 - z3d - 29-07-2008

Il est vrai que la conversion d'un site ISO vers UTF8 est assez contraignante car rébarbative.

Commencons par les fichiers, tu as 2 solutions, la manuelle, ouvrir chaque fichier et modifier leur encodage ou l'automatique en utilisant l'extension PHP prévu à cet effet soit inconv, attention il faut être sûr de l'encodage employé.
Pour ceci je te conseil la solution manuelle car de toute manière tu vas être obligé de modifier quelques fonctions native comme strlen, ereg, ereg_replace, etc; je te rassure d'avance, il y a très peu de fonctions à modifier, principalement celle traitant les chaînes; car elles sont basées sur l'encodage ISO. Il faudra faire précéder chacune d'entre elles par mb_ (mb signifiant multibyte) soit mb_strlen, mb_ereg, mb_ereg_replace.

N'oublie pas non plus de choisir UTF-8 sans BOM et sans Signature, ces deux encodages ajoutent des caractères invisible cela aura pour résultat l'apparition de header already sent.

Ensuite pour la base de données, je te conseille de configurer ta base, tes tables et tes champs en utf8_unicode_ci. Je déconseille la sensibilité à la casse car c'est bien plus contraignant; mais tu peux tout de même le faire, c'est toi qui choisis.
Attention, bien que la configuration de tout ceci soit en UTF-8, MySQL te renverra tout de même de l'ISO car le connecteur PHP <--> MySQL travaille en ISO, il faudra faire suivre chacune de tes connexions par une requête SQL, soit : SET NAMES UTF8.

Pour PHP, il faut activer obligatoirement l'extension mbstring et la configurer correctemment. Evite toutefois d'activer func_overload, tu auras d'une part une perte de performance et d'autre part quelques incompatibilités.

Enfin, Il faut configurer également Apache en UTF-8, en lui ajoutant dans httpd.conf la directive AddDefaultCharset UTF-8.

Pour finir, je te renvoie vers ce site qui détail agréablement la démarche à suivre.


RE: Convertir son site en Utf 8 - Kassak - 29-07-2008

Je suis sous notepad++, lorsque je change d'encodage ma page pour un Utf-8 (sans BOM), cela me remplace tous les accents par des rectangles blanc (et les 2 ou 3 caractères suivant l'accent), normal pas normal? Je n'ai pas entendu parler de ce souci sur les tutos que j'ai lu..

Ensuite pourquoi me conseilles tu utf8_unicode_ci et non pas un des deux autres que j'ai cité au 1er post?

Pour ce qui est de l'activation de mbstring, comment l'active t-on?

Est il possible de mettre la ligne de configuration de apache, ainsi que la configuration de mbstring ( proposée sur ton tuto ) dans un .htaccess ?


RE: Convertir son site en Utf 8 - z3d - 29-07-2008

Effectivement, j'ai eu à faire face à ce problème avec un ami qui utilise N++ que ce soit le changement ou la conversion d'encodage cela fonctionne mal.
Il faut que tu coupe tout le texte de ta page, convertir l'encodage et collé puis tu enregistres, ainsi plus de souci pendant les conversions.

Concernant, l'activation de l'extension, comme pour toutes les autres cela se passe dans le php.ini, il peut être possible de l'activer via le htaccess si l'hébergeur le permet.

Tu peux activer utf-8 pour apache via le .htaccess.

Je suis gentil, je t'ai répondu mais je doute très fortement que tu es lu le lien que je t'ai filé dans mon précédent post Smile


RE: Convertir son site en Utf 8 - Kassak - 30-07-2008

Si je l'ai lu, comme beaucoup d'autres, et comme dit à chaque fois il y a une solution différente, je préfère seulement une explication d'un membre de jeuphp, en direct Smile


Pour ce qui est de Mysql qui renvoie toujours de L'ISO, cette ligne "SET NAMES UTF8" est elle nécessaire bien que je mette utf8_unicode_ci comme interclassement pour la connexion MySQL directement dans le phpmyadmin ? (Sur la page d'accueil, il y a cette option).


RE: Convertir son site en Utf 8 - Eluox - 30-07-2008

Personnellement, j'ai eu des problèmes d'encodages avec notepad++, je suis passé sous notepad2, et plus rien Wink

Cordialement,


RE: Convertir son site en Utf 8 - z3d - 30-07-2008

Oui, la requête est obligatoire après chaque ouverture de connection même en utilisant la classe mysqli, hormis le fait qu'il y a une méthode spécifique pour celle-ci mysqli->set_charset('utf8') Wink


RE: Convertir son site en Utf 8 - Kassak - 31-07-2008

Chez OVH, le php.ini n'est pas accessible apparemment, il existe un moyen d'activer mbstring autrement?

Sur le tuto, ils disent que l'on peut mettre les directives de configuration dembstring dans un http.conf-.htaccess ( un .htaccess tout court? ), le fait de mettre seulement ça activera l'extension? J'en doute mais on ne sait jamais.


RE: Convertir son site en Utf 8 - Eluox - 31-07-2008

J'ai trouvé sa si sa peux t'aider Big Grin

http://blog.neovov.com/index.php?2007/03/06/143-convertir-un-site-en-utf-8


RE: Convertir son site en Utf 8 - z3d - 31-07-2008

Effectivement, il est tout à fait possible d'activer une extension php via un .htaccess, encore faut-il que la configuration d'apache l'autorise.

Des hébergements mutualisé sans mbstring d'activé, je trouve cela étonnant, contact le service technique d'OVH. C'est pas dans leur interêt.

As-tu vérifier si elle n'est pas déjà activé via un fichier phpinfo() ?