No sabemos utilizar el juego de caracteres correctamente

Me sorprende encontrarme cosas como lo que podemos ver en la siguiente captura de pantalla de una pagina web de Amazon:

amazon-solo-ingles

Note: Only the English alphabet (non-accented Latin characters), numbers, and these special characters & – , ‘ / # . % are accepted.

A estas alturas del desarrollo web, que todavía pase esto, y además, en una página de Amazon, es bastante sorprendente.

Como recordatorio, unos vídeos que tengo sobre el uso del juego de caracteres:

HTML: juego de caracteres

HTML: el juego de caracteres y los editores de texto

HTML: ¿migrar a un nuevo juego de caracteres?

Google también prefiere UTF-8

Desde hacía tiempo sabía que el W3C recomienda usar UTF-8 (Choosing & applying a character encoding), pero ahora también sé que Google lo recomienda (Metaetiquetas que Google entiende):

Esta metaetiqueta define el tipo de contenido de la página y el conjunto de caracteres. Asegúrate de delimitar el valor del atributo de contenido con comillas; de lo contrario, el atributo del conjunto de caracteres podría interpretarse de manera incorrecta. Recomendamos utilizar Unicode/UTF-8 siempre que sea posible.

El juego de caracteres ISO 8859

El juego de caracteres es la pesadilla de los informáticos. Y aunque aún exista solución, usar Unicode y alguna de sus representaciones como UTF-8, a veces no se puede emplear porque se trabaja con un sistema heredado que no lo soporta. En esos casos hay que usar un juego de caracteres particular como ISO 8859.

ISO 8859 tiene diferentes versiones y variantes, lo cual puede complicar su uso. En ISO/IEC 8859 se muestra una tabla con las 16 variantes que existen hasta el momento.

iso-8859

¿Qué es mejor, escribir el carácter o el escape?

Esta es una pregunta que muchas veces me han hecho, ¿qué es mejor, escribir “á” o “&aacute”?

Personalmente prefiero escribir “á”, ocupa menos y los documentos son más legibles. Si se indica correctamente el juego de caracteres, no plantea ningún problema usar caracteres raros como “á” o “ñ”. Pero hasta ahora no tenía una referencia que respaldase mi respuesta. Hasta ahora…

En Consejos rápidos sobre internacionalización para la Web nos dicen en Utilice caracteres en lugar de escapes siempre que sea posible:

Los escapes, tales como las referencias de caracteres numéricos (NCR), y las entidades son formas de representar cualquier carácter Unicode en el etiquetado, utilizando únicamente caracteres ASCII. Por ejemplo, puede representar el carácter á en X/HTML como & #xE1; o & #225; o & aacute;.

Estos escapes son útiles para representar de manera clara los caracteres ambiguos o invisibles, y evitar problemas con los caracteres de sintaxis, tales como los signos de “y” y los paréntesis angulares. Asimismo, en ocasiones, pueden resultar útiles para representar caracteres que no son admitidos por su codificación de caracteres o que no están disponibles en su teclado. De lo contrario, siempre deberá utilizar caracteres en lugar de escapes.

El cotejamiento, las tablas de MySQL

El cotejamiento un concepto asociado al juego de caracteres y los dos forman parte de los “grandes misterios de la informática”: si se hiciese una encuesta entre un grupo de informáticos, pocos serían los que sabrían contestar con exactitud qué es y para qué sirve el cotejamiento.

Del juego de caracteres he publicado varios artículos y vídeos que se pueden encontrar en este blog en la entrada juego caracteres.

Tengo que hacer algún vídeo sobre el cotejamiento. Hasta que llegue ese momento, dejo aquí un enlace a una página en la que se pueden encontrar las tablas de cotejamiento de varios sistemas gestores de bases de datos, incluyendo MySQL: Collation Charts.

Y un par de capturas de las tablas utf8_spanish:

spanish_collation

y utf8_spanish2:

spanish2_collation