2010-10-14 16 views
40

Qualcuno sa perché latin1_swedish è l'impostazione predefinita per MySQL. Mi sembrerebbe che UTF-8 sarebbe più compatibile giusto?Perché MySQL usa latin1_swedish_ci come predefinito?

I valori di default vengono solitamente scelti perché sono la migliore scelta universale, ma in questo caso non sembra quello che hanno fatto.

+4

Buona domanda! mySQL è (o era una volta) una società svedese, quindi questo è probabilmente il motivo della parte svedese ... Per quanto riguarda il perché latin1, non lo so. –

+0

@Pekka +1 Ah ..... è interessante. Non lo sapevo. – Metropolis

+0

Possibile duplicato di [Perché la collazione predefinita di MySQL è latin1 \ _swedish \ _ci?] (Http://stackoverflow.com/questions/6769901/why-is-mysqls-default-collation-latin1-swedish-ci) –

risposta

27

Per quanto posso vedere, latin1 è stato il set di caratteri di default in epoca pre-multibyte e sembra che ciò che è stato continuato, probabilmente per motivi di compatibilità verso il basso (per esempio per anziani CREATE dichiarazioni che non ha specificato un metodo di confronto) .

Da here:

Che 4.0 Lo

MySQL 4.0 (e versioni precedenti) supportato solo quello che ammontano a una nozione combinata del set di caratteri e collazione con codifiche dei caratteri a singolo byte, che è stato specificato a livello di server. L'impostazione predefinita era latin1, che corrisponde a un set di caratteri di latin1 e alle regole di confronto di latin1_swedish_ci in MySQL 4.1.

Quanto al motivo per svedese, posso solo immaginare che sia perché MySQL AB è/era svedese. Non riesco a vedere nessun altro motivo per scegliere questa collation, essa viene fornita con alcune peculiarità di ordinamento specifiche (ÄÖÜ dopo che Z penso) ma non sono affatto vicine a uno standard internazionale.

+2

penso che maby scelga questa collocazione piuttosto strana per rendere ovvio all'utente che viene shold essere cambiato. che ovviamente nella maggior parte dei casi non è risultato come previsto ma è stato prevenuto dalla tirannia del default :) –

+2

@ TheSurrican, che strana risposta. Ciò che rende questo uno strano confronto? È la versione svedese del latino standard1 scelta da un'azienda svedese. È proprio come Oracle che sceglie l'inglese americano per i loro prodotti. – chrismacp

+0

Che ne dici di latin1_swedish_ci come ISO 8859-1 e ISO 8859-1 è la prima delle scelte disponibili quando ordinate, quindi se non specifichi alcuna scelta, lo