Me pone programar

Más que me pone, digamos que me gusta y disfruto con ello

Me pone programar

Blog personal sobre PHP, JavaScript, CSS, Estándares, Flash i demás temas interesantes del mundo de la informática e Internet

Dump de base de datos MySQL sin charset ni collate

07/11/2008 a las 03:28 por Shox

Hacer un dump de una base de datos para llevarlo a entro entorno, parece tarea sencilla siempre que no intervengan en la ecuación diferentes versiones de MySQL y configuraciones extrañas.

Los requisitos de los “administradores” era que la base de datos estuviera en latin-1 y que no saliera el CHARSET=latin1 COLLATE=latin1_general_ci, y además que hubiera un único insert para cada query, y no reaprovecharlos.

Después de mucho buscar, Agustí dio con la solución:

./mysqldump –host=localhost –user=user–password=password –skip-extended-insert –skip-set-charset –compatible=mysql40,no_table_options DB nombre_DB > archivo.sql

Donde host, user y password son los datos del servidor,  nombre_DB es el nombre de la base de datos, y archivo.sql es donde se volvaran todos los datos

Categorías: MySQL
Tags: , , , ,
Comentarios: Sin comentarios »

Acentos en los subjects de los emails. Ampliado

15/08/2008 a las 10:42 por Shox

Como pudimos ver en otro post, poner acentos o carácteres extraños en los subjects de los emails ya no es un misterio.

Leyendo el fabuloso libro “Building Scalable Web Sites -  The Flickr way” he profundizado más en el tema.
El formato se compone de lo siguiente:

=?utf-8?Q?hello_=E2=98=BA?=

que corresponde a:

=?charset?encoding?encoded-text?=

Vamos por partes, el charset utilizaremos siempre utf-8, ya que es nos posibilita enviar cualquier tipo de cadena de carácteres, sin limitar el alfabeto o idioma.

El encoding, puede ser B o Q, y depende de su codificación, el texto codificado será de una manera o otra:

B - Codificación en Base64: Es la que utilicé en el anterior post, codificando todo el string posteriormente en base64.

Q - Codificación en Quoted Printable (RFC 3548): Cada byte representa un literal comenzando por el símbolo igual (=) seguido por dos dígitos hexadecimales. Por ejemplo el byte 0×8A se representaría con =8A. Los espacios (0×20) serán substituidos por el literal underscore (_, byte 0×5F). Los demás carácteres alfanuméricos se quedarían como están.

¿Cual es la mejor opción? Ambas generarán un subject bien formado, peró quizas en modo Q, el texto codificado final es un poco más human-friendly, que el codificado en base64.

Amazon - Building Scalable Web Sites; de Cal Henderson (O’Reilly)

Categorías: Meponeprogramar, PHP
Tags: , , ,
Comentarios: Sin comentarios »