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

Tabletas para niños corren peligro

Expertos avisan que las Tablets para niños pueden ser pirateadas Empresa de seguridad cibernética dice tabletas de los niños son inseguros y ponen en riesgo la seguridad tanto de niños como de los padres.   Las Tabletas de los niños tienen poca o ninguna seguridad para proteger los datos y son vulnerables a la piratería informática, una firma líder de seguridad informática, ha advertido lo siguiente: El Grupo de NCC evalúa dos tabletas  para niños que pueden estar ya incluidas en muchas listas de regalos de Navidad en ellas, se encontró que la seguridad de los niños y la privacidad está en riesgo. "Los resultados de este análisis mostraron que poco o nada de seguridad informática contienen estos dispositivos lo que pone en riesgo la privacidad del usuario del denominado "Tablet para niños", esto no solo afecta que la información del dispositivo del niño pueda ser manipulada, sino que también al adquirir estos aparatos esta usted poniendo su segurid...

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.  ...

Las Diez Mejores Reglas De Diseño Front-End Para Desarrolladores

Como desarrolladores Front-End, nuestro trabajo es esencialmente convertir los diseños en realidad a través del código. Comprender y ser competentes en el diseño es un componente importante de esto. Desafortunadamente, entender realmente el diseño de Front-End es más fácil a la hora de decirlo que hacerlo. La codificación y el diseño estético requieren algunos conjuntos de habilidades bastante diferentes. Debido a esto, algunos desarrolladores Front-End no son tan proficientes en el aspecto de diseño como deberían ser y como resultado, su trabajo sufre. Mi objetivo es darte algunas reglas y conceptos fáciles de seguir, desde un  desarrollador Front-End  a otro, que te ayudará a ir desde el inicio hasta el final de un proyecto sin estropear lo que tus diseñadores trabajaron tan duro (o posiblemente incluso permitirte diseñar tus propios proyectos con resultados decentes). Por supuesto, estas reglas no te llevarán de malo a magnífico en el tiempo que toma para leer un artí...