Bonjour,
cela fait un moment que j'ai mon site en php 5.4 et j'ai toujours repoussé la mise à jour à un version php supérieur… D'une part à cause de mysql, de devoir tout convertir en mysqli… Bon c'est un peu de boulot mais ça se fait
( en réalité il y a quelques années de cela j'avais commencé à le faire… j'avais fait 2 sous domaines et j'avais tout réédité et tester au fur à mesure sur une version donc non public)
En faite le point qui me bloque pour cette mise à jour c'est les charset… Actuellement mon site est en ISO-8859-1 et ma bdd en latin1
En augmentant la version de php les charset par défaut passe en utf8… Et du coup je suis un peu hésitant sur ce que je fais… Si j'en profite de remettre tout le site et la base de donnée en UTF8… ça m'oblige à tout réencoder tous mes fichiers… Ou bien si je redéfini les charset défaut en ISO…
Car j'ai lu que le ISO et le latin1 de mysql était quand même plus rapide… Si mon site n'a pas besoin des caractères supplémentaire qu'offre l'UTF8 est-ce que ce n'est pas mieux de le laisser en ISO même si ce n'est plus le défaut ? est-ce que le gain face à l'UTF8 vaut le coup ?
Bonjour,
J'ai eu le même problème que toi lorsqu'il a fallu passer en php 5.6.
Après la mise à jour des appels de base de données avec mysqli, il fallait que je trouve une solution car, sur du mutualisé, toutes les pages en php sont en UTF8.
N'ayant que faire de l'UTF8, j'ai décidé de forcer la page en iso
:
`ini_set( 'default_charset', 'ISO-8859-1' );`
au début de chaque page, simplement, sans m'ennuyer avec htaccess et consort..
Bien sur, il faut déclarer l'entête html en conséquence :
``
Je dois passer en UTF8 mais il faut faire attention car si tu oublie un code ou une transformation il y a possibilité de corrompre la base de données (j'ai eu ce problème en local heureusement).
Pour passer en utf8 en inscrivant des informations dans la base de données, j'ai utilisé l'instruction suivante :
`mysqli_set_charset($nom_de_base, 'utf8');`
Fais des sauvegardes de la base avant essai. Si il y a problème, tu peux réessayer avec la sauvegarde tant qu'il y a problème sans devoir tout recommencer.
oui j'avais justement fait des test à l'époque sous 2 sous domaines non public et une nouvelle base de données…
Sur le premier j'avais laissé en ISO-8859-1 et sur l'autre j'étais passé en utf8 avec la nouvelle base de données en utf8..
Mais du coup maintenant je me demande quel voie prendre pour le site final… Tout en ISO ou tout en UTF8
Bonjour,
perso je vous conseil UTF-8 côté PHP/HTML et pour la BDD (si disponible) utf8mb4, car si vous souhaitez faire évoluer vos sites dans le future (avec des emojis par exemple) ce sont les prérequis.
Et puis qui peut le plus peut le moins et cela évitera des problèmes future.
Cordialement, janus57
Bonjour janus,
merci pour ta réponse, mais justement je n'ai pas besoin d'évolution de ce genre, mon site a eut 15 ans cet année et il n'évoluera pas avec des émoticons ou autre.
La question principal que je me pose c'est les performances utf8 vs ISO-8859-1
Bonjour,
aucune idée côté perf, cependant il faut garder en tête que tous les logiciel sont en UTF-8 par défaut (du moins les "classique" tel que apache/nginx/mariadb/mysql), du coup je pense qu'il est préférable en 2020 (bientôt 2021) d'utiliser UTF-8 ce fera une chose en moins à faire attention lors d'une migration et/ou upgrade PHP et peut être une plus long pérennité par rapport aux évolution logiciel autour du site.
Cordialement, janus57
Tout en ISO ou tout en UTF8
Sans vouloir aller chercher dans les emoji, il faut un ISO-8859-15 (et non -1) rien que pour pouvoir stocker le caractère € .
Et comme dit plus haut, celui qui peut le plus peut le moins, donc tout ce qui suit c'est du bête texte (qu'on peut par exemple mettre en sujet d'un mail grâce à UTF-8).
( ͡⚆ ͜ʖ ͡⚆)
╭∩╮(-_-)╭∩╮
̿ ̿ ̿'̿'̵͇̿̿з=(•_•)=ε̵͇̿̿'̿'̿ ̿