La codificación Quoted-Printable es una sintaxis de escape que utiliza caracteres ASCII imprimibles ( alfanuméricos y el signo igual= ) para representar datos binarios arbitrarios y permitir la transmisión de datos de 8 bits a través de una ruta de datos de 7 bits o, en general, a través de un medio que no sea compatible con 8 bits . Históricamente, debido a la amplia gama de sistemas y protocolos que podían utilizarse para transferir mensajes, se solía asumir que el correo electrónico no era compatible con 8 bits ; sin embargo, los servidores SMTP modernos son, en la mayoría de los casos, compatibles con 8 bits y admiten esta extensión. También puede utilizarse con datos que contengan octetos no permitidos o longitudes de línea que superen los límites de SMTP. Se define como una codificación de transferencia de contenido MIME para su uso en correo electrónico . 8BITMIME
La codificación Quoted-Printable funciona utilizando el signo de igual =como carácter de escape . Además, limita la longitud de la línea a 76 caracteres, ya que algunos programas tienen límites de longitud de línea.
Introducción
MIME define mecanismos para enviar todo tipo de información por correo electrónico, incluyendo texto en idiomas distintos del inglés , utilizando codificaciones de caracteres diferentes a ASCII. Sin embargo, estas codificaciones suelen usar valores de bytes fuera del rango ASCII, por lo que requieren una codificación adicional antes de poder utilizarse en un entorno que no sea de 8 bits. La codificación Quoted-Printable es un método para asignar bytes arbitrarios a secuencias de caracteres ASCII. Por lo tanto, Quoted-Printable no es un esquema de codificación de caracteres en sí mismo, sino una capa de codificación de datos que se utiliza bajo alguna codificación de caracteres orientada a bytes . La codificación Quoted-Printable es reversible, lo que significa que los bytes originales y, por consiguiente, los caracteres no ASCII que representan, pueden recuperarse de forma idéntica.
La codificación Quoted-printable y Base64 son los dos métodos de codificación de binario a texto definidos en el RFC 2045, que forma parte de los RFC MIME. [ 1 ]
Quoted-Printable y Base64 son las dos codificaciones de transferencia de contenido MIME, si no se consideran las codificaciones triviales de "7 bits" y "8 bits". Si el texto a codificar no contiene muchos caracteres no ASCII, Quoted-Printable produce un resultado codificado bastante legible y compacto . Por otro lado, si la entrada tiene muchos caracteres de 8 bits, Quoted-Printable se vuelve ilegible y extremadamente ineficiente. Base64 no es legible para humanos, pero tiene una sobrecarga uniforme para todos los datos y puede ser la opción más lógica para formatos binarios o texto en un alfabeto distinto al latino . La desventaja de usar Base64 en lugar de binario es un aumento significativo en la cantidad de datos enviados al usar Base64. [ 2 ]
Codificación
Cualquier valor de byte de 8 bits puede codificarse con 3 caracteres: un =seguido de dos dígitos hexadecimales (0–9 o A–F) que representan el valor numérico del byte. Por ejemplo, un carácter de salto de página ASCII (valor decimal 12) puede representarse con =0C, y un signo de igual ASCII (valor decimal 61) debe representarse con =3D. Todos los caracteres, excepto los caracteres ASCII imprimibles o los caracteres de fin de línea (pero también =), deben codificarse de esta manera.
Todos los caracteres ASCII imprimibles (valores decimales entre 33 y 126) pueden representarse por sí mismos, excepto =(decimal 61, hexadecimal 3D, por lo tanto =3D).
Los caracteres ASCII de tabulación y espacio , con valores decimales 9 y 32, pueden representarse por sí mismos, salvo que aparezcan al final de la línea codificada. En ese caso, deberán escaparse como =09tabulación o =20espacio, o bien ir seguidos de un =salto de línea suave como último carácter de la línea codificada. Esta última solución es válida porque evita que la tabulación o el espacio sean el último carácter de la línea codificada.
Si los datos que se están codificando contienen saltos de línea significativos, deben codificarse como una secuencia ASCII CR LF, no como sus valores de byte originales, ni directamente ni mediante =signos. Por el contrario, si los valores de byte 13 y 10 tienen significados distintos al fin de línea (en tipos de medios, [ 3 ] por ejemplo), entonces deben codificarse como =0Dy =0Arespectivamente.
Las líneas de datos codificados Quoted-Printable no deben tener más de 76 caracteres. Para cumplir con este requisito sin alterar el texto codificado, se pueden agregar saltos de línea suaves= según se desee. Un salto de línea suave consiste en un espacio al final de una línea codificada y no aparece como un salto de línea en el texto decodificado. [ 3 ] Estos saltos de línea suaves también permiten codificar texto sin saltos de línea (o que contenga líneas muy largas) para un entorno donde el tamaño de línea es limitado, como el límite de 1000 caracteres por línea de algunos programas SMTP , según lo permitido por RFC 821 [ 4 ] y RFC 2821. [ 5 ]
En los encabezados de los mensajes se utiliza una versión ligeramente modificada de Quoted-Printable.
Ejemplo
El siguiente ejemplo es un texto en francés (codificado en UTF-8), con una alta frecuencia de letras con signos diacríticos (como la é ).
J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font= vite p=C3=A9dagogues et t'enseignent comme but ce qui n'est par essence qu= 'un moyen, et te trompant ainsi sur la route =C3=A0 suivre les voil=C3=A0 b= ient=C3=B4t qui te d=C3=A9gradent, car si leur musique est vulgaire ils te = fabriquent pour te la vendre une =C3=A2me vulgaire. =E2=80=94=E2=80=8AAntoine de Saint-Exup=C3=A9ry, Ciudadela (1948)
Esto codifica la siguiente cita:
J'interdis aux marchands de vanter trop leurs marchandises. Car ils se font vite pédagogues et t'enseignent comme but ce qui n'est par essence qu'un moyen, et te trompant ainsi sur la route à suivre les voilà bientôt qui te dégradant, car si leur musique est vulgaire ils te fabriquent pour te la vendre une âme vulgaire.
— Antoine de Saint-Exupéry , Ciudadela (1948)
Véase también
- Codificación porcentual : codificación de datos en URL, utilizada principalmente para texto.
- Referencia de caracteres numéricos : codificación de texto en SGML, HTML y XML.
- Formato de texto enriquecido § Codificación de caracteres : un componente de la codificación de texto
Notas
Referencias
- ↑ Chris Porter. "Seguridad del correo electrónico con Cisco IronPort" . 2012.
- ↑ Ng, Alex (29 de marzo de 2005). "Un estudio del impacto de la compresión y la codificación binaria en el rendimiento de SOAP" (PDF) .
{{cite web}}: CS1 mantenimiento: estado de la URL ( enlace ) - 1 2 Extensiones de correo de Internet multipropósito (MIME) Parte uno: Formato de los cuerpos de los mensajes de Internet. Noviembre de 1996. RFC 2045 # 6.7 Quoted-Printable Content-Transfer-Encoding , parte "(4) (Saltos de línea)". Recuperado el 18 de marzo de 2013.
- ↑ Extensiones de correo de Internet multipropósito (MIME) Parte uno: Formato de los cuerpos de los mensajes de Internet. Noviembre de 1996. [ https://www.rfc-editor.org/rfc/rfc2045#section-1 RFC 2045 # 1. Introducción. Recuperado el 11 de febrero de 2026.
- ↑ RFC 2821
Enlaces externos
- Correo electrónico