Poniendo MySQL en UTF-8

La codificación de contenidos cuando se desarrolla una aplicación que requiere el uso de bases de datos puede llegar a convertirse en una de las peores pesadillas de un desarrollador, sobre todo si es algo en lo que no has pensado desde las primeras fases iniciales previas al inicio del desarrollo. Motores de bases de datos tan populares y difundidos como MySQL pueden dar muchísimos problemas a la hora de grabar datos, de recuperarlos y de renderizarlos en vistas, si no tenemos en cuenta la codificación. La codificación de datos más adecuada en la mayor parte de los casos es UTF-8, ya que implementa todos los caracteres que se puedan usar en cualquier idioma, así como gran cantidad de guarismos que, sin pertenecer a un idioma específico, son de uso relativamente común, como signos matemáticos u otros. Para implementar otros caracteres extremadamente especiales hay otras codificaciones adecuadas, pero eso es tan poco habitual que ni lo vamos a comentar. El problema es que, cuando se crea una base de datos, tabla o campo, el motor de MySQL (dependiendo de la versión, y del entorno de desarrollo) tiende a emplear alguna codificación de tipo latin-n-xxxxxxxx o similar. De momento, parece irrelevante, …

Seguir leyendo

PHP-TUT-11 Manejo de datos (I)

A la hora de realizar una gestión de información para ofrecerle al usuario unos resultados acordes con su petición, a menudo no es suficiente con disponer de datos “en bruto”, sino que se hace necesario elaborarlos de algún modo. Por ejemplo, puede ser que su sistema almacene fechas en formato aaaa-mm-dd y usted quiera ofrecerlas en formato dd/mm/aaaa, si sus usuarios son europeos, o mm-dd-aaaa, si son anglosajones. O puede ser que, dado un texto determinado, usted sólo quiera mostrar una pequeña parte del mismo como enlace a una página donde se mostrará completo. En este artñiculo vamos a conocer las principales funciones que proporciona PHP para el manejo de cadenas alfanuméricas. En el próximo hablaremos de valores aritméticos y fechas. Estos dos artículos son, desde mi punto de vista, un poco áridos. Mi consejo es que los leas por encima para tener una visión de conjunto de las posibilidades que le ofrece PHP para el manejo de datos, y lo uses como guía de consulta para utilizar cada función concreta cuando necesites llevar a cabo tal o cual acción. No intentes aprenderte de memoria todas las funciones y sus sintaxis.

La marca BOM en UTF-8

Este artículo es un pequeño truquillo basado en mi experiencia en situaciones concretas. Veréis que, desde el punto de vista de la programación es algo muy simple que, si lo piensas un segundo, seguramente ya conoces. Sin embargo, para aquellos que se lo encuentran por primera vez puede suponer un pequeño quebradero de cabeza. Te cuento. Todos, a día de hoy, trabajamos con la codificación UTF-8 en nuestros archivos. Todos nuestros scripts están grabados con esta codificación. Y también la damos (y la exigimos) cuando tenemos que intercambiar datos con servicios o aplicaciones de otros desarrolladores. Esta codificación abarca todo el código Unicode y evita que tengamos conflictos cuando empleamos caracteres de alfabetos locales o, incluso, guarismos que no pertenecen a ninguna alfabetización específica. Cuando digo que “todos usamos UTF-8” estoy generalizando un poco. En determinados proyectos de gran envergadura, con recursos y finalidades muy específicos, se emplean otras codificaciones (y si no, que le pregunten a IBM, que de eso saben un rato) pero, desde luego, en el mundillo del desarrollo web, o de aplicaciones de escritorio, UTF-8 es, sin duda, el estándar imperante. Sin embargo, hay dos modos de grabar contenidos o documentos en UTF-8. Con y sin …

Seguir leyendo

Codificación UTF-8 con PHP

Esta es un mini post muy rápido para comentar algo muy importante, que todos sabemos pero que no está de más recordar. Cuando escribimos para la web a menudo surgen problemas con los caracteres acentuados y otros propios de codificaciones locales, como el español. Se visualizan incorrectamente en el navegador. Tradicionalmente esto se venía solucionando sustituyendo, en HTML, esos caracteres por sus correspondientes entidades. Así, si queremos que en el texto de la página, por ejemplo, aparezca la palabra página, en el HTML la escribimos cómo página. Esto, además de ser una solución obsoleta, es tremendamente engorrosa en textos largos, y siempre se nos “pasa” algún carácter.