Ir al contenido principal

Codificación de Datos: Una Guía UTF-8 para PHP y MySQL

Desde toptotal nos cuentan.. "La codificación de Datos" esto creo que es una duda que nos ha surgido en algún punto cuando vamos iniciando en el mundo del desarrollo y es el desconocimiento de los diferentes formatos de codificación tenemos varias opciones pero hoy nos centraremos en el uso de UTF-8 y porque deberías usarlo.


Como desarrollador PHP o MySQL, una vez que pasas más allá de los confines de los cómodos conjuntos de caracteres sólo en inglés, te encuentras rápidamente enredado en el maravillosamente y extraño mundo de UTF-8.

Una Mirada Rápida UTF-8 Primer

Unicode es un estándar de la industria de computación ampliamente utilizado, que define un mapeo completo de valores únicos de códigos numéricos a los caracteres de la mayoría de los conjuntos de caracteres escritos hoy en día, para ayudar con la interoperabilidad de los sistemas y el intercambio de datos. 

UTF-8 es una codificación de amplitud variable (variable-width encoding) que puede representar todos los caracteres en el conjunto de caracteres Unicode. Fue diseñado para mantener la retrocompatibilidad con ASCII y para evitar las complicaciones con Endianness y marcas de orden de bytes en UTF-16 y UTF-32. UTF-8 se ha convertido en la codificación de caracteres dominante para la World Wide Web, lo que representa más de la mitad de todas las páginas Web. 

UTF-8 codifica cada carácter utilizando de uno a cuatro bytes. Los primeros 128 caracteres de Unicode corresponden uno a uno con ASCII, haciendo válido el texto ASCII, al igual que el texto con codificación UTF-8. Es por esta razón que los sistemas que están limitados al uso del conjunto de caracteres en inglés, están aislados de las complejidades que de lo contrario pueden surgir con UTF-8.

Por ejemplo, el código hexadecimal Unicode para la letra A es U + 0041, que en UTF -8 simplemente está codificado con el byte único 41. En comparación, el código hexadecimal Unicode para el carácter  es U+233B4, que en UTF-8 se codifica con los cuatro bytes F0, A3, B4, 8E.
En un trabajo previo a éste, comenzamos a encontrar problemas de codificación de datos al mostrar biografías de artistas de todo el mundo. Pronto se hizo evidente que había problemas con los datos almacenados ya que a veces los datos se codifican correctamente y otras veces no.
Esto llevó a los programadores a implementar una mezcla de parches, a veces con JavaScript, a veces con etiquetas meta charset HTML, a veces con PHP, y así sucesivamente. Pronto, terminamos con una lista de 600.000 biografías de los artistas, con la información codificada al doble o triple, con datos almacenados en diferentes formas, dependiendo de quién había programado la característica o aplicado el parche. Un clásico nido de ratas técnico.
De hecho, navegar por problemas UTF-8 relacionados con codificación de datos, puede ser una experiencia frustrante. Este post proporciona un “libro de cocina” conciso para abordar estos problemas cuando se trabaja con PHP y MySQL particularmente, basado en la experiencia práctica y las lecciones aprendidas (y con agradecimientos, en parte, a la información descubierta aquí y aquí en el camino).
En concreto, vamos a cubrir lo siguiente en este post:
  • Mods que tendrás que hacer a tu archivo php.ini y código PHP.
  • Mods que tendrás que hacer a tu archivo my.ini y otros problemas relacionados con MySQL que se deben tener en cuenta (incluyendo mods de configuración, necesarias si estás utilizando Sphinx )
  • Cómo migrar datos de una base de datos MySQL previamente codificada en latin1 en lugar de utilizar una codificación UTF-8


Comentarios

Entradas populares de este blog

¿Qué es la ejecución de código arbitrario?

En informática , el término código arbitrario hace referencia a código muy largo que no será interpretado por una aplicación o sistema operativo sino que provocará un desbordamiento de búfer de esa aplicación o sistema operativo lo que hará que el trozo desbordado sea interpretado y/o ejecutado por el sistema bajo unas condiciones más favorables. Es utilizado para realizar ataques. Otra forma más simple de definirlo es que la ejecución de código arbitrario es: Una forma fácil en la que un atacante puede ejecutar "comandos" tan sencillo como pensar en que alguien a distancia esta tecleando comandos que pueden ser desde un inocente mkdir "para hacer directorio" hasta un rm "borrar directorio" o abrir puertos etc para troyanizar el equipo "mantener el acceso". Lo que también es conocido como remote code execution .

Shazam! Reconocimiento de Algoritmos de Música, Huellas Dactilares y Procesamiento

Alguna vez de has preguntado, ¿Cómo es que mi iPhone (Siri) es capaz de saber que canción toca la radio con solo decirle la pregunta y dejarle "escuchar" un pedazo? Bueno eso son algoritmos de conocimiento de Música que hoy en día disfrutamos en nuestros telefonos iPhone, Android pero hay una ciencia detrás de esto. En el artículo de hoy hablaremos a detalle sobre "Reconocimiento de Algoritmos de Música, Huellas Dactilares y Procesamiento" tenemos un interesante artículo que nos comparten desde toptotal.com Oyes una canción familiar en el club o en el restaurante. Has escuchado esta canción miles de veces desde hace mucho tiempo y el sentimentalismo de la canción realmente toca tu corazón. ¡Desesperadamente la quieres volver a escuchar en la mañana, pero no recuerdas su nombre! Afortunadamente, en nuestro increíble mundo futurista, tienes un teléfono con software de reconocimiento de música instalado. Puedes relajarte, ya que el Software te dijo el nombre de la ...

XKEYSCORE: Google, NSA y las Comunicaciones Privadas del Mundo - Parte I

Una de las más poderosas herramientas de vigilancia masiva de la Agencia de Seguridad Nacional ( NSA )  hace un seguimiento del uso de Internet de alguien tan fácil como introducir una dirección de correo electrónico, y no proporciona la tecnología incorporada al publico para evitar abusos. Hoy en día, La Intercepción publica 48 - top secret y otros documentos clasificados sobre XKEYSCORE fecha hasta 2013 , que arrojan nueva luz sobre la amplitud, la profundidad y la funcionalidad de este sistema de espionaje crítico - uno de los lanzamientos más grandes hasta ahora de los documentos proporcionados por la NSA denunciante Edward Snowden . Descripción breve sobre  XKEYSCORE XKEYSCORE  es un programa de la NSA   el cual fue revelado por el diario The Guardian , lo que hace es hacer un barrido con innumerables búsquedas en Internet de las personas, correos electrónicos, documentos, nombres de usuario y contraseñas, y otras comunicaciones privadas.  ...