2010-10-14 11 views
40

¿Alguien sabe por qué latin1_swedish es el predeterminado para MySQL? Me parece que UTF-8 sería más compatible, ¿verdad?¿Por qué MySQL usa latin1_swedish_ci como valor predeterminado?

Los valores predeterminados generalmente se eligen porque son la mejor opción universal, pero en este caso no parece que eso sea lo que hicieron.

+4

¡Buena pregunta! mySQL es (o solía ser) una compañía sueca, así que esa es probablemente la razón de la parte sueca ... En cuanto a por qué latin1, no sé. –

+0

@Pekka +1 Ah ... eso es interesante. No sabía eso. – Metropolis

+0

Posible duplicado de [¿Por qué la intercalación predeterminada de MySQL es latin1 \ _swedish \ _ci?] (Http://stackoverflow.com/questions/6769901/why-is-mysqls-default-collation-latin1-swedish-ci) –

Respuesta

27

Hasta donde puedo ver, latin1 era el juego de caracteres predeterminado en tiempos pre-multibyte y parece que se ha continuado, probablemente por razones de compatibilidad descendente (por ejemplo, para las declaraciones CREATE anteriores que no especificaban una intercalación) .

De here:

Lo 4.0 Did

MySQL 4.0 (y versiones anteriores) sólo está soportado lo que equivalía a una noción combinada del conjunto de caracteres y la colación con la codificación de caracteres de un solo byte, que se especificó en el nivel del servidor. El valor predeterminado era latin1, que corresponde a un conjunto de caracteres de latin1 y una intercalación de latin1_swedish_ci en MySQL 4.1.

cuanto a por qué sueco, que sólo puede suponer que es porque MySQL AB es/era sueco. No veo ninguna otra razón para elegir esta intercalación, viene con algunos caprichos de clasificación específicos ("después de Z", creo) pero no están cerca de un estándar internacional.

+2

Creo que pueden elegir esta colocación bastante extraña para que sea obvio para el usuario que se cambie. que por supuesto en la mayoría de las veces no resultó como se esperaba pero fue prevenido por la tiranía del incumplimiento :) –

+2

@TheSurrican, Qué extraña respuesta. ¿Qué hace que esta colación sea extraña? Es la versión sueca del estándar latin1 elegido por una compañía sueca. Es como si Oracle eligiera el inglés estadounidense para sus productos. – chrismacp

+0

¿Qué tal si latin1_swedish_ci es ISO 8859-1 e ISO 8859-1 es la primera de las opciones disponibles cuando se ordena, por lo que si no especifica ninguna opción,