¿Cuál es la mejor intercalación para usar en MySQL con PHP? [cerrado]

Resuelto Darryl Hein asked hace 54 años • 11 respuestas

¿Existe algún tipo de intercalación recomendado oficialmente por MySQL para un sitio web general en el que no está 100% seguro de lo que se ingresará? Entiendo que todas las codificaciones deben ser iguales, como MySQL, Apache, HTML y cualquier cosa dentro de PHP.

En el pasado configuré PHP para generar en "UTF-8", pero ¿con qué intercalación coincide esto en MySQL? Estoy pensando que es uno de los UTF-8, pero he usado utf8_unicode_ci, utf8_general_ciy utf8_binantes, y no sé cuál de estos mapas "utf8" es el mejor para usar.

Darryl Hein avatar Jan 01 '70 08:01 Darryl Hein
Aceptado

La principal diferencia es la precisión de clasificación (al comparar caracteres en el idioma) y el rendimiento. El único especial es utf8_bin que sirve para comparar caracteres en formato binario.

utf8_general_cies algo más rápido que utf8_unicode_ci, pero menos preciso (para ordenar). La codificación utf8 del idioma específico (como utf8_swedish_ci) contiene reglas de idioma adicionales que los hacen más precisos para ordenar esos idiomas. La mayor parte del tiempo lo uso utf8_unicode_ci(prefiero la precisión a pequeñas mejoras de rendimiento), a menos que tenga una buena razón para preferir un lenguaje específico.

Puede leer más sobre conjuntos de caracteres Unicode específicos en el manual de MySQL: http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

Eran Galperin avatar Dec 15 '2008 07:12 Eran Galperin

En realidad, probablemente quieras usar utf8_unicode_cio utf8_general_ci.

  • utf8_general_ciordena eliminando todos los acentos y ordenando como si fuera ASCII
  • utf8_unicode_ciutiliza el orden de clasificación Unicode, por lo que ordena correctamente en más idiomas

Sin embargo, si solo usa esto para almacenar texto en inglés, estos no deberían diferir.

Vegard Larsen avatar Dec 15 '2008 08:12 Vegard Larsen