2009-08-05 13 views
27

Quando creo un nuovo database MySQL tramite phpMyAdmin, ho la possibilità di scegliere le regole di confronto (ad es. Default, armscii8, ascii, ... e UTF-8). Quello che conosco è UTF-8, visto che lo vedo sempre nel codice sorgente HTML. Ma qual è la collazione predefinita? Quali sono le differenze tra queste scelte e quale dovrei usare?In MySQL, quale fascicolazione dovrei scegliere?

+0

se si desidera una maggiore precisione, utilizzare utf8_unicode_ci. consulta http://stackoverflow.com/questions/367711/questo-è-il-best-collation-to-use-for-mysql-with-php –

+0

unicode_general_ci è raccomandato uno sul codice wordpress: https: // codex. wordpress.org/Installing_WordPress – stare

risposta

15

Collation non è in realtà il valore predefinito, ma offre le regole di confronto predefinite come prima scelta.

Quello di cui stiamo parlando è collation o il set di caratteri che il database utilizzerà nei suoi tipi di testo. L'opzione predefinita di solito è basata su impostazioni regionali, quindi, a meno che tu non abbia intenzione di globalizzare, di solito è peachy-keen.

Le collisioni determinano anche il caso e la sensibilità di accento (vale a dire 'Grande' == 'grande'? Con un CI, lo è). Controlla lo MySQL list per tutte le opzioni.

+0

Che ne dici di UTF-8? Ho visto wordpress usando UTF-8? Dovrei usare UTF-8 ?? – bbtang

+0

UTF-8 è Unicode. Se non sei in un paese di lingua inglese, è una buona scommessa usarlo. – Eric

+4

Vedo. Il nostro progetto è rivolto agli Stati Uniti e al mondo intero, quindi penso che sarebbe meglio se usassimo UTF-8, ho ragione? – bbtang

21

Collation indica al database come eseguire la corrispondenza e l'ordinamento delle stringhe. Dovrebbe corrispondere al tuo charset.

Se si utilizza UTF-8, le regole di confronto devono essere utf8_general_ci. Questo ordinerà in ordine Unicode (senza distinzione tra maiuscole e minuscole) e funziona per la maggior parte delle lingue. Conserva anche l'ordine ASCII e Latin1.

Le regole di confronto predefinite sono normalmente latin1.

+2

Non utilizzare nessuna delle regole di confronto utf8. Memorizzano solo fino a 3 punti di codice byte. L'UTF-8 corretto è chiamato utf8mb4 che consente fino a 4 byte e quindi include emoji. https://mathiasbynens.be/notes/mysql-utf8mb4 – user1318499

+0

@ user1318499 Puoi trasformare il tuo commento in una risposta e fornire maggiori dettagli? –

+0

Ho dimenticato la maggior parte di questa roba ora, quindi non sono sicuro di scriverne altri, ma tutte le informazioni dovrebbero essere nel link nel mio commento se vuoi farne una risposta tu stesso. – user1318499

Problemi correlati