Lequel d'entre nous a raison?
Il était une fois votre patron. Mais avec le temps, les choses changent. De nos jours, vous l'êtes (mais avant de courir vers votre patron, assurez-vous de lire la réponse de Nelson également ).
Les anciennes versions de MySQL, et les anciennes versions de presque tout , traitaient beaucoup mieux de l’ancien Latin1 / ISO-8859-1 (5) que de l’UDT8.
Il y a une raison pour laquelle UTF8 a été créé, développé et poussé presque partout: s'il est correctement implémenté, cela fonctionne beaucoup mieux . Certains problèmes de performances et de stockage découlent du fait qu'un caractère Latin1 fait 8 bits, tandis qu'un caractère UTF8 peut comporter de 8 à 32 bits. Donc, lors de la planification, VARCHAR
vous devez en tenir compte. Et vos routines de recherche seront un peu plus lentes. Ils seront capables de faire plus de choses (par exemple, des recherches avec ou sans sensibilité accentuée . Ne peuvent pas faire celles de Latin1 sans travail considérable), mais cela prendra un peu plus de temps.
Par contre, le stockage est bon marché , les frais généraux réalistes sur la taille des fichiers sont inférieurs à 2 à 3%, la puissance de calcul est également bon marché et devient moins chère, conformément à la loi de Moore; alors que votre temps et les attentes de vos clients ne le sont certainement pas .
Vous pourriez avoir à vous soucier des outils de recherche, etc. si vous étiez le seul à développer de tels outils. Mais vous ne l'êtes probablement pas. Vous utilisez ces outils; Même ceux qui n'étaient pas totalement conformes à la norme UTF8 hier (comme ce n'était pas le cas avec les précédents MySQL) le sont aujourd'hui ou le seront bientôt (par exemple, MySQL avec le support utf8mb4).
Ainsi, en planifiant avec soin et en mettant en œuvre correctement UTF8 ( sans le réappliquer après coup sur Latin1), vous pouvez obtenir un code très raisonnablement évolutif , qui, si vous envisagez de faire des affaires avec n’importe quel pays asiatique, est très bon. Chose. Et si vous n'avez pas de tels plans, d'autres personnes en auront, et ces personnes pourraient être vos clients, fournisseurs ou partenaires.
Ainsi, quand ils commenceront à vous envoyer des données UTF8, vous devrez configurer un truc compliqué pour effectuer la conversion aller-retour vers Latin1 et traiter les cas insolubles.
Si vous prenez en compte dans le budget le coût de plusieurs escarmouches contre les ninjas diaboliques mojibake , et considérez qu’elles ne vont pas disparaître - comme vous l’avez déjà découvert - vous réaliserez alors que passer au format UTF8 n’est pas seulement plus simple, il sera également plus simple. moins cher aussi.