Primero unas definiciones:
Conjunto caracteres: Listado de caracteres con su código identificativo.
Colaciones: Conjunto de reglas para comparar caracteres en un juego de caracteres dado.
utf8_spanish_ci
: Español Moderno
utf8_spanish2_ci
: Español Tradicional.
En ambas colaciones: 'ñ' es una letra independiente, entre 'n' y 'o'.
Español tradicional: 'ch' es una letra, ordenada entre 'c' y d, y 'll' es una letra que se coloca entre 'l' y 'm'
Quiere decir que si usas el utf8_spanish2_ci habran dos letras de mas y que ambas te permitiran tener la letra eñe(Ñ) dentro de tus datos y que se muestren.
NO tienen nada que ver con la cantidad de datos que se insertaran, solo definen que letras se mostraran y que no, es decir, si usas spanish_ci, la EÑE (Ñ) se mostrara en los datos algo asi "ÑAME", de lo contrario otro tipo de colacion te mostraría: áóñ
en vez de la EÑE(Ñ) y otros elementos como las tildes y palabras asentuadas y tambien te apareceria el � Caracter inspector donde este la EÑE(Ñ)
Pasate por aqui para ver los problemas que generaria:
¿Por que el Carácter inspector (�) aparece en algunos datos obtenidos de la Base de Datos?
Te recomiendo utf_spanish_ci y luego codificar tus documentos HTML en utf-8, tal y como hice en mi problema
Cotejamiento MYSQL
Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas también.
Algunas paginas recomiendo solo utf8_spanish_ci para string y el resto
en utf8_unicode_ci, pero no se que tan bueno sea, porque no lo he
probado.
Contenido HTML
Pon en el <head>
de todos los archivos HTML:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Contenido PHP
header("Content-Type: text/html;charset=utf-8");
mysql_query("SET NAMES 'utf8'");