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 .

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

Escuela de Hacking israelí entrena a los nuevos guerreros cibernéticos de hoy

HADERA - Tres hackers encapuchados se encorvan frente a sus pantallas de ordenador en la sala de control en una clase de avanzado "Cyber ​​Gym" en Israel, donde empleados de la compañía de infraestructura de TI se entrenan con el objetivo de estar preparados para defenderse de los ataques cibernéticos. La instalación, una serie de pequeños edificios en la sombra de la central eléctrica de Orot Rabin ubicados en la costa norte de Israel, fue inaugurado este mes por la Israel Electric Corp (IEC ), que ha experimentado parte de los ataques cibernéticos. Su motivación "Creemos que Israel , es el país más atacado del mundo" menciona el director de Cyber ​​Gym Ofir Hason a la AFP durante la entrevista. La nueva Ciber Guerra Israelí "Como la compañía civil más atacado de Israel, esto nos da las capacidades únicas para entrenar a otras empresas de todo en el mundo" Para defenderse de la piratería del sistema entrenando en un entorno de condiciones ...