¿Cuál de nosotros tiene razón?
Érase una vez, tu jefe fue. Pero a medida que pasa el tiempo, las cosas cambian. Hoy en día, lo eres (pero antes de correr hacia tu jefe, asegúrate de leer también la respuesta de Nelson ).
Las versiones anteriores de MySQL, y las versiones antiguas de casi todo , se manejaban mucho mejor con el Latin1 / ISO-8859-1 (5) más antiguo que con UTF8.
Hay una razón por la que se ha creado, evolucionado y distribuido UTF8 principalmente en todas partes: si se implementa correctamente, funciona mucho mejor . Existen algunos problemas de rendimiento y almacenamiento derivados del hecho de que un carácter Latin1 tiene 8 bits, mientras que un carácter UTF8 puede tener una longitud de 8 a 32 bits. Así que cuando planifica VARCHAR
necesita tener esto en cuenta. Y tus rutinas de búsqueda serán un poco más lentas. Podrán hacer más cosas (por ejemplo, búsquedas con sensibilidad de acento o sin . No puedo hacer eso en Latin1 sin un trabajo extenso), pero tomará un poco más de tiempo.
Pero, por otro lado, el almacenamiento es barato , la sobrecarga realista en el tamaño de los archivos es inferior al 2-3%, la potencia de cómputo también es barata y se hace más barata en buen acuerdo con la Ley de Moore; mientras que su tiempo y las expectativas de sus clientes definitivamente no lo son .
Es posible que tenga que preocuparse por las herramientas de búsqueda, etc. si fuera usted quien desarrollara dichas herramientas. Pero probablemente no lo eres. Usted usa esas herramientas; incluso aquellos que no eran completamente compatibles con UTF8 ayer (como no lo eran los MySQL anteriores), son hoy, o pronto lo serán (por ejemplo, MySQL con soporte para utf8mb4).
Entonces, al planear e implementar con cuidado UTF8 de la manera correcta ( no dándole una palmada en Latin1 como una idea de último momento), puede tener un código que es muy razonable a prueba de futuro , que Si planeas hacer negocios con cualquier país asiático, es algo muy bueno. Y si no tiene dichos planes, otras personas lo tendrán, y esas personas podrían ser sus clientes, proveedores o socios.
Entonces, cuando empiecen a enviarte datos UTF8, tendrás que configurar una cosa complicada para convertir hacia y desde Latin1, y lidiar con casos sin solución.
Cuando se toma en cuenta el presupuesto, el costo de varias escaramuzas contra los ninja del mojibake maligno , y considera que no van a desaparecer , como ya descubrió, entonces se dará cuenta de que utilizar UTF8 no solo es más sencillo, sino que también será más barato .