J'ai créé une base de données sans trop me soucier des charset et collations (jeux de caractères et interclassements) parce que j'utilisais juste des caractères anglais/français.
Dans ma base de données j'ai des tables en utf8 avec des colonnes VARCHAR utf8-general-ci et des tables en latin1 avec des colonnes latin1-swedish-ci.
Les variables de ma base sont aussi mélangées, je ne sais pas si c'est grave :
Je voudrais unifier tout, donc la question est : je modifie tout en latin1 ou utf8 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 character_set_client=utf8 (Valeur globale)=latin1 character_set_connection=utf8 (Valeur globale)=latin1 character_set_database=latin1 character_set_results=utf8 (Valeur globale)=latin1 character_set_server=latin1
Pour l'instant j'aimerais utiliser juste le signe € qui n'est pas dans latin1, mais je peux m'en passer.
De ce que j'ai lu, l'utf8 (codé sur 1 à 4 octets) ne prend pas plus de place que le latin1 (codé sur 1 octet) tant qu'on utilise des caractères latin1. Et il permet d'utiliser des autres langues comme russe, chinois... Donc tout bénef.
Sauf que j'ai lu aussi que le fait qu'il est codé sur un nombre variable d'octet ralentit les recherches, comparaisons, etc.
Donc niveau performance, ça semble mieux d'utiliser latin1, non ?
Oui mais dans 2 ans quand mon site aura un succès fou et que je voudrais en faire une version chinoise/russe/hébreux/klingon : est-ce qu'il sera facile de modifier toute ma base du latin1 vers l'utf8 sans corrompre mes données ?
EDIT : et aussi, est-ce qu'il est possible d'avoir une base en latin1 et le site (apache/PHP) en utf8 ? Ou si je passe ma base en latin1 je suis OBLIGE de passer mon site en latin1.
Partager