2009-08-05 19 views
27

Cuando creo una nueva base de datos MySQL a través de phpMyAdmin, tengo la opción de elegir la intercalación (por ejemplo, predeterminada, armscii8, ascii, ... y UTF-8). El que yo sé es UTF-8, ya que siempre veo esto en el código fuente HTML. Pero, ¿cuál es la intercalación predeterminada? ¿Cuáles son las diferencias entre estas opciones y cuál debo usar?En MySQL, ¿qué colación debo elegir?

+0

si quiere más precisión, use utf8_unicode_ci. consulte http://stackoverflow.com/questions/367711/what-is-the-best-collation-to-use-for-mysql-with-php –

+0

unicode_general_ci se recomienda uno en wordpress codex: https: // codex. wordpress.org/Installing_WordPress – stare

Respuesta

15

La intercalación no es la predeterminada, le ofrece la intercalación predeterminada como primera opción.

Lo que estamos hablando es collation, o el juego de caracteres que su base de datos usará en sus tipos de texto. Por lo general, su opción predeterminada se basa en la configuración regional, por lo que, a menos que esté planeando globalizarse, por lo general eso es brillante.

Las intercalaciones también determinan la sensibilidad de caso y acento (es decir, ¿es 'Grande' == 'grande'? Con un CI, lo es). Consulte MySQL list para ver todas las opciones.

+0

¿Qué tal UTF-8? Vi wordpress usando UTF-8? ¿Debería usar UTF-8? – bbtang

+0

UTF-8 es Unicode. Si no estás en un país de habla inglesa, es una buena apuesta para usarlo. – Eric

+4

Ya veo. Nuestro proyecto se dirige a EE. UU. Y a todo el mundo, por lo que creo que sería mejor si usamos UTF-8, ¿estoy en lo cierto? – bbtang

21

La intercalación indica a la base de datos cómo realizar una coincidencia y clasificación de cadenas. Debería coincidir con su juego de caracteres.

Si usa UTF-8, la clasificación debe ser utf8_general_ci. Esto ordenará en orden Unicode (no distingue entre mayúsculas y minúsculas) y funciona para la mayoría de los idiomas. También conserva el orden ASCII y Latin1.

La intercalación predeterminada es normalmente latin1.

+2

No utilice ninguna de las intercalaciones utf8. Solo almacenan puntos de código de hasta 3 bytes. El UTF-8 correcto se llama utf8mb4, que permite hasta 4 bytes y, por lo tanto, incluye emojis. https://mathiasbynens.be/notes/mysql-utf8mb4 – user1318499

+0

@ user1318499 ¿Puedes transformar tu comentario en una respuesta y dar más detalles? –

+0

He olvidado la mayor parte de esas cosas ahora, así que no estoy seguro de escribir más, pero toda la información debe estar en el enlace de mi comentario si quieres convertirla en una respuesta tú mismo. – user1318499