Salut tout le monde !
Je suis un petit nouveau dans la communauté d'alsa, je viens ici assez régulièrement dès que j'ai des soucis et bien souvent les questions déjà posées ou les très bonnes FAQ me suffisent. Mais aujourd'hui je suis face à un problème un peu plus corsé: la migration d'un site vers UTF-8 et tout ce que cela implique.
Pour passer rapidement sur mes motivations de passage à l’UTF-8, ca m’est venu en cherchant l’origine de caractères du style é lorsque que j’écrivais un é dans mon javascript. Après la lecture de différents sujets dont http://forum.alsacreations.com/faq/faq-36-Charset-Iso-8859-1-iso-8859-15-utf-8-lequel-choisir-.html j’ai fait le choix de passer à l’UTF-8.
Il faut l’avouer je n’ai jamais prêté attention au charset et je me contentais bien souvent d’utiliser le meta dans le head html sans me poser de questions. Mais l’application que je suis en train de développer requiert un peu plus d’attention à ce niveau là.
Au fur et à mesure de mes différentes recherches je suis tombé sur plusieurs sites expliquant plus ou moins bien comment passer à l'UTF-8 et les risques encourus.
C'est principalement sur ce site http://blog.neovov.com/index.php?2007/03/06/143-convertir-un-site-en-utf-8 que j'ai trouvé le plus d'informations
Mais alors quelle est la raison de mon post car ce site explique plein de choses bien me direz-vous.
Et ben en réalité je nage dans un flou artistique total sur quelques points de détails, les voici :
(Par avance désolé si certaines questions peuvent paraître désuètes mais il s’agit surtout de confirmer certaines de mes interrogations)
Apache :
- Est-il préférable d'utiliser la fonction header PHP pour préciser l'encodage en UTF-8 ou alors de paramétrer la config dans Apache? (sachant que je suis sur un mutualisé j'ai pas accès à tout mais j’aurai un dédié très prochainement)
- L’extension mbstring est-elle vraiment nécessaire ?
MySQL :
J'avoue ne pas avoir tout compris au niveau des encodages des requêtes à faire... plusieurs questions ici aussi :
- Quelle différence y a-t-il entre utf8_general_ci et utf8_unicode_ci ?
- Sur la page d’accueil de PHPMyAdmin, si on m’indique « Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) » cela signifie donc que la base est en utf8_unicode_ci ?
- Toujours sur la page d’accueil de PHPMyAdmin, ce qui est indiqué « Interclassement pour la connexion MySQL » il s’agit bien du jeu de caractère pour toute les requêtes que fera PHPMyAdmin et cela n’a rien à voir avec la base de données en elle-même non ?
PHP/MySQL :
Bon maintenant que le serveur c’est ok et que la base est au bon format, il va falloir lire et écrire dans la base ^^
- Est-ce donc nécessaire de faire pour chaque insertion en base un « utf8_encode » et pour chaque lecture un « utf8_decode » ?
- L’utilisation de SET NAMES ‘utf8’ ; avant chaque requête n’est-elle pas un peu lourde ?
En sommes qu’elle est la bonne marche à suivre pour bien dialoguer avec la base de données.
FTP et fichiers :
Jusqu’à maintenant j’utilisais PSPad pour sa fonction d’éditeur en mode FTP et j’en étais très content ! Mais le passage à l’UTF-8 requiert un encodage des fichiers, PSPad permet de choisir l’encodage des fichiers à l’enregistrement mais il y a ce fameux UTF-8 BOM ou sans BOM qui n’est pas géré par PSPad (du moins pas d’après mes recherches), par défaut j’ai l’impression que c’est la version BOM qui est utilisée car j’ai des caractères  qui apparaissent sur ma page.
Est-ce que quelqu’un connaitrait donc un bon éditeur avec une fonction FTP et gérant la version BOM/sans BOM.
Question bonus sur le BOM, je me suis rendu compte que lorsque j’ajoute le header HTTP UTF-8 les caractères disparaissent, cependant on conseille partout d’éviter le BOM, que faire ?
Globalement j’aimerai éviter d’avoir à repasser sur tous mes fichiers pour modifier le code de mes dialogues avec la base de données je pense que vous devez me comprendre (surtout quand l’appli possède près de 800 fichiers….). Cependant je crois que je vais devoir malheureusement repasser sur tous les fichiers, au moins pour les enregistrer au format UTF-8 (sans BOM).
Finalement si vous aviez quelques bons liens expliquant des choses en plus je suis preneur !
Voila, je sais que mon post est assez long, certaines questions peuvent vous paraitre enfantines mais si vous pouviez éclairer ma lanterne je vous en serais très reconnaissant.
Par avance merci !
Modifié par tone (15 Oct 2007 - 23:14)
Je suis un petit nouveau dans la communauté d'alsa, je viens ici assez régulièrement dès que j'ai des soucis et bien souvent les questions déjà posées ou les très bonnes FAQ me suffisent. Mais aujourd'hui je suis face à un problème un peu plus corsé: la migration d'un site vers UTF-8 et tout ce que cela implique.
Pour passer rapidement sur mes motivations de passage à l’UTF-8, ca m’est venu en cherchant l’origine de caractères du style é lorsque que j’écrivais un é dans mon javascript. Après la lecture de différents sujets dont http://forum.alsacreations.com/faq/faq-36-Charset-Iso-8859-1-iso-8859-15-utf-8-lequel-choisir-.html j’ai fait le choix de passer à l’UTF-8.
Il faut l’avouer je n’ai jamais prêté attention au charset et je me contentais bien souvent d’utiliser le meta dans le head html sans me poser de questions. Mais l’application que je suis en train de développer requiert un peu plus d’attention à ce niveau là.
Au fur et à mesure de mes différentes recherches je suis tombé sur plusieurs sites expliquant plus ou moins bien comment passer à l'UTF-8 et les risques encourus.
C'est principalement sur ce site http://blog.neovov.com/index.php?2007/03/06/143-convertir-un-site-en-utf-8 que j'ai trouvé le plus d'informations
Mais alors quelle est la raison de mon post car ce site explique plein de choses bien me direz-vous.
Et ben en réalité je nage dans un flou artistique total sur quelques points de détails, les voici :
(Par avance désolé si certaines questions peuvent paraître désuètes mais il s’agit surtout de confirmer certaines de mes interrogations)
Apache :
- Est-il préférable d'utiliser la fonction header PHP pour préciser l'encodage en UTF-8 ou alors de paramétrer la config dans Apache? (sachant que je suis sur un mutualisé j'ai pas accès à tout mais j’aurai un dédié très prochainement)
- L’extension mbstring est-elle vraiment nécessaire ?
MySQL :
J'avoue ne pas avoir tout compris au niveau des encodages des requêtes à faire... plusieurs questions ici aussi :
- Quelle différence y a-t-il entre utf8_general_ci et utf8_unicode_ci ?
- Sur la page d’accueil de PHPMyAdmin, si on m’indique « Jeu de caractères pour MySQL: UTF-8 Unicode (utf8) » cela signifie donc que la base est en utf8_unicode_ci ?
- Toujours sur la page d’accueil de PHPMyAdmin, ce qui est indiqué « Interclassement pour la connexion MySQL » il s’agit bien du jeu de caractère pour toute les requêtes que fera PHPMyAdmin et cela n’a rien à voir avec la base de données en elle-même non ?
PHP/MySQL :
Bon maintenant que le serveur c’est ok et que la base est au bon format, il va falloir lire et écrire dans la base ^^
- Est-ce donc nécessaire de faire pour chaque insertion en base un « utf8_encode » et pour chaque lecture un « utf8_decode » ?
- L’utilisation de SET NAMES ‘utf8’ ; avant chaque requête n’est-elle pas un peu lourde ?
En sommes qu’elle est la bonne marche à suivre pour bien dialoguer avec la base de données.
FTP et fichiers :
Jusqu’à maintenant j’utilisais PSPad pour sa fonction d’éditeur en mode FTP et j’en étais très content ! Mais le passage à l’UTF-8 requiert un encodage des fichiers, PSPad permet de choisir l’encodage des fichiers à l’enregistrement mais il y a ce fameux UTF-8 BOM ou sans BOM qui n’est pas géré par PSPad (du moins pas d’après mes recherches), par défaut j’ai l’impression que c’est la version BOM qui est utilisée car j’ai des caractères  qui apparaissent sur ma page.
Est-ce que quelqu’un connaitrait donc un bon éditeur avec une fonction FTP et gérant la version BOM/sans BOM.
Question bonus sur le BOM, je me suis rendu compte que lorsque j’ajoute le header HTTP UTF-8 les caractères disparaissent, cependant on conseille partout d’éviter le BOM, que faire ?
Globalement j’aimerai éviter d’avoir à repasser sur tous mes fichiers pour modifier le code de mes dialogues avec la base de données je pense que vous devez me comprendre (surtout quand l’appli possède près de 800 fichiers….). Cependant je crois que je vais devoir malheureusement repasser sur tous les fichiers, au moins pour les enregistrer au format UTF-8 (sans BOM).
Finalement si vous aviez quelques bons liens expliquant des choses en plus je suis preneur !
Voila, je sais que mon post est assez long, certaines questions peuvent vous paraitre enfantines mais si vous pouviez éclairer ma lanterne je vous en serais très reconnaissant.
Par avance merci !
Modifié par tone (15 Oct 2007 - 23:14)