RFC 1521:MIME (Multipurpose Internet Mail Extensio...
RFC-Ref

encoding


Click on the red underlined text to get to the source

... User Agent, a program with which human users send and receive mail). Examples of such encodings currently used in the Internet include pure hexadecimal, uuencode, the 3-in-4 base 64 ...
... which can be used to specify the type and subtype of data in the body of a message and to fully specify the native representation (encoding) of such data. 2.a. A "text" Content-Type ...
... video data format. 3. A Content-Transfer-Encoding header field, which can be used to specify an auxiliary encoding ...
... Content-Transfer-Encoding header field, which can be used to specify an auxiliary encoding that was applied to the data in order to allow it to pass through mail transport mechanisms which ...


... method used with one or more tables to convert encoded text to a series of octets. This definition is intended to allow various kinds of text encodings, from simple single-table mappings such as ASCII to complex table switching methods ...


... The Content-Transfer-Encoding Header Field ...
... It is necessary, therefore, to define a standard mechanism for re- encoding such data into a 7-bit short-line format. This document specifies that such encodings ...
... encoding such data into a 7-bit short-line format. This document specifies that such encodings will be indicated by a new "Content- Transfer-Encoding" header field ...
... specifies that such encodings will be indicated by a new "Content- Transfer-Encoding" header field. The Content-Transfer-Encoding field ...
... Transfer-Encoding" header field. The Content-Transfer-Encoding field is used to indicate the type of transformation that has been used in order to represent the body in an acceptable manner for transport ...
... Unlike Content-Types, a proliferation of Content-Transfer-Encoding values is undesirable and unnecessary. However, establishing only a single Content-Transfer-Encoding ...
... Content-Transfer-Encoding values is undesirable and unnecessary. However, establishing only a single Content-Transfer-Encoding mechanism does not seem possible. There is a tradeoff between the desire for a compact and efficient encoding of largely-binary data ...
... single Content-Transfer-Encoding mechanism does not seem possible. There is a tradeoff between the desire for a compact and efficient encoding of largely-binary data and the desire for a readable encoding of data ...
... efficient encoding of largely-binary data and the desire for a readable encoding of data that is mostly, but not entirely, 7-bit data. For this reason, at least two encoding ...
... encoding of data that is mostly, but not entirely, 7-bit data. For this reason, at least two encoding mechanisms are necessary: a "readable" encoding and a "dense" encoding ...
... this reason, at least two encoding mechanisms are necessary: a "readable" encoding and a "dense" encoding. ...
... encoding mechanisms are necessary: a "readable" encoding and a "dense" encoding. The Content-Transfer-Encoding ...
... encoding. The Content-Transfer-Encoding field is designed to specify an invertible mapping between the "native" representation of a type of data and a representation that can be readily exchanged using 7 bit ...
... This field has not been defined by any previous standard. The field's value is a single token specifying the type of encoding, as enumerated below. Formally: ...
... enumerated below. Formally: encoding := "Content-Transfer-Encoding" ":" mechanism ...
... encoding := "Content-Transfer-Encoding" ":" mechanism mechanism := "7bit" ; case-insensitive ...
... BASE64 and bAsE64 are all equivalent. An encoding type of 7BIT requires that the body is already in a seven-bit mail-ready representation. This ...
... bit mail-ready representation. This is the default value -- that is, "Content-Transfer-Encoding: 7BIT" is assumed if the Content-Transfer-Encoding header field ...
... default value -- that is, "Content-Transfer-Encoding: 7BIT" is assumed if the Content-Transfer-Encoding header field is not present. ...
... The values "8bit", "7bit", and "binary" all mean that NO encoding has been performed. However, they are potentially useful as indications of the kind of data contained in the object, and therefore of the ...
... been performed. However, they are potentially useful as indications of the kind of data contained in the object, and therefore of the kind of encoding that might need to be performed for transmission in a given transport system. In particular: ...
... 7-bit, the appropriate bit-width Content-Transfer-Encoding token must be used (e.g., "8bit" ...
... 8 bit wide data). If the body contains binary data, the "binary" Content-Transfer-Encoding token must be used. ...
... token must be used. NOTE: The distinction between the Content-Transfer-Encoding values of "binary", "8bit", etc. may seem unimportant, in that all of ...
... of "binary", "8bit", etc. may seem unimportant, in that all of them really mean "none" -- that is, there has been no encoding of the data for transport. However, clear labeling will be of ...
... to include unencoded binary data in mail bodies. Thus there are no circumstances in which the "binary" Content-Transfer-Encoding is actually legal on the Internet. However, in the event that ...
... this mechanism. NOTE: The five values defined for the Content-Transfer-Encoding field imply nothing about the Content-Type other than the ...
... Implementors may, if necessary, define new Content-Transfer-Encoding values, but must use an x-token, which is a name prefixed by "X-" to ...
... values, but must use an x-token, which is a name prefixed by "X-" to indicate its non-standard status, e.g., "Content-Transfer-Encoding: x-my-new-encoding". However, unlike Content-Types ...
... indicate its non-standard status, e.g., "Content-Transfer-Encoding: x-my-new-encoding". However, unlike Content-Types and subtypes, the creation of new Content-Transfer-Encoding ...
... encoding". However, unlike Content-Types and subtypes, the creation of new Content-Transfer-Encoding values is explicitly and strongly discouraged, as it seems likely to hinder interoperability ...
... user agents. If a Content-Transfer-Encoding header field appears as part of a message header ...
... message header, it applies to the entire body of that message. If a Content-Transfer-Encoding header field appears as part of a body part's headers ...
... entity is of type "multipart" or "message", the Content-Transfer- Encoding is not permitted to have any value other than a bit width (e.g., "7bit", "8bit ...
... It should be noted that email is character-oriented, so that the mechanisms described here are mechanisms for encoding arbitrary octet streams, not bit streams. If a bit stream ...
... has a "padding" parameter. The encoding mechanisms defined here explicitly encode all data in ASCII. Thus, for example, suppose an entity ...
... charset=ISO-8859-1 Content-transfer-encoding: base64 ...
... base64 ASCII encoding of data that was originally in ISO-8859-1, and will be in that character set ...
... character set again after decoding. The following sections will define the two standard encoding mechanisms. The definition of new content-transfer-encodings is ...
... The following sections will define the two standard encoding mechanisms. The definition of new content-transfer-encodings is explicitly discouraged and should only occur when absolutely necessary. All content-transfer-encoding ...
... content-transfer-encodings is explicitly discouraged and should only occur when absolutely necessary. All content-transfer-encoding namespace except that beginning with "X-" is explicitly reserved to the IANA ...
... IANA for future use. Private agreements about content-transfer-encodings are also explicitly discouraged. ...
... explicitly discouraged. Certain Content-Transfer-Encoding values may only be used on certain Content-Types. In particular, it is expressly forbidden to use any ...
... Content-Types. In particular, it is expressly forbidden to use any encodings other than "7bit", "8bit", or "binary" with any Content- Type that recursively includes other Content-Type ...
... Content-Type fields, notably the "multipart" and "message" Content-Types. All encodings that are desired for bodies of type multipart or message must be done at the innermost level, by encoding ...
... encodings that are desired for bodies of type multipart or message must be done at the innermost level, by encoding the actual body that needs to be encoded. ...
... NOTE ON ENCODING RESTRICTIONS: Though the prohibition against using content-transfer-encodings on data of type multipart or ...
... ON ENCODING RESTRICTIONS: Though the prohibition against using content-transfer-encodings on data of type multipart or message may seem overly restrictive, it is necessary to prevent nested encodings ...
... content-transfer-encodings on data of type multipart or message may seem overly restrictive, it is necessary to prevent nested encodings, in which data are passed through an encoding algorithm ...
... message may seem overly restrictive, it is necessary to prevent nested encodings, in which data are passed through an encoding algorithm multiple times, and must be decoded multiple times in ...
... algorithm multiple times, and must be decoded multiple times in order to be properly viewed. Nested encodings add considerable complexity to user agents: aside from the obvious efficiency ...
... complexity to user agents: aside from the obvious efficiency problems with such multiple encodings, they can obscure the basic structure of a message. In particular, they can imply that several decoding operations are necessary simply to find out what ...
... structure of a message. In particular, they can imply that several decoding operations are necessary simply to find out what types of objects a message contains. Banning nested encodings may complicate the job of certain mail gateways, but this seems less ...
... complicate the job of certain mail gateways, but this seems less of a problem than the effect of nested encodings on user agents. ...
... ON THE RELATIONSHIP BETWEEN CONTENT-TYPE AND CONTENT- TRANSFER-ENCODING: It may seem that the Content-Transfer-Encoding could be inferred from the characteristics of the Content-Type ...
... CONTENT-TYPE AND CONTENT- TRANSFER-ENCODING: It may seem that the Content-Transfer-Encoding could be inferred from the characteristics of the Content-Type ...
... Content-Type that is to be encoded, or, at the very least, that certain Content-Transfer-Encodings could be mandated for use with specific Content-Types. There are several reasons why this is not the case. ...
... First, given the varying types of transports used for mail, some encodings may be appropriate for some Content-Type/transport ...
... 8-bit transport, no encoding would be required for text in certain character sets, while such encodings ...
... encoding would be required for text in certain character sets, while such encodings are clearly required for 7- bit SMTP ...
... SMTP.) Second, certain Content-Types may require different types of transfer encoding under different circumstances. For example, many PostScript bodies might consist entirely of short ...
... PostScript bodies might consist entirely of short lines of 7-bit data and hence require little or no encoding. Other PostScript bodies (especially those using Level 2 ...
... PostScript bodies (especially those using Level 2 PostScript's binary encoding mechanism) may only be reasonably represented using a binary transport encoding. Finally, since ...
... PostScript's binary encoding mechanism) may only be reasonably represented using a binary transport encoding. Finally, since Content-Type is intended to be an open-ended ...
... association between Content-Types and encodings effectively couples the specification of an application protocol with a specific lower-level transport ...
... NOTE ON TRANSLATING ENCODINGS: The quoted-printable and base64 ...
... quoted-printable and base64 encodings are designed so that conversion between them is possible. The only issue that arises in such a conversion is the handling of line breaks ...
... NOTE ON CANONICAL ENCODING MODEL: There was some confusion, in earlier drafts of this memo, regarding the model for when email ...
... given that the representation of newlines varies greatly from system to system, and the relationship between content-transfer- encodings and character sets. For this reason, a canonical model ...
... character sets. For this reason, a canonical model for encoding is presented as Appendix G. ...
... Quoted-Printable Content-Transfer-Encoding ...
... The Quoted-Printable encoding is intended to represent data that largely consists of octets that correspond to printable characters in the ASCII character ...
... gateway. In this encoding, octets are to be represented as determined by the following rules: ...
... ASCII EQUAL SIGN) can be represented by "=3D". Except when the following rules allow an alternative encoding, this rule is mandatory. Rule #2: (Literal ...
... line break, which is a CRLF sequence, in the Quoted-Printable encoding. Since the canonical representation of types other than text do not ...
... to be displayed to the user) should occur in the quoted-printable encoding of such types. Of course, occurrences of "=0D", "=0A", "0A=0D" and "=0D=0A" will eventually be encountered. In general, however, base64 ...
... Rule #5 (Soft Line Breaks): The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable ...
... that encoded lines be no more than 76 characters long. If longer lines are to be encoded with the Quoted-Printable encoding, 'soft' line breaks must be used. An equal sign as the last character on a ...
... This can be represented, in the Quoted-Printable encoding, as Now's the time = ...
... Since the hyphen character ("-") is represented as itself in the Quoted-Printable encoding, care must be taken, when encapsulating a quoted-printable encoded body in a multipart entity ...
... NOTE: The quoted-printable encoding represents something of a compromise between readability and reliability in transport ...
... transport. Bodies encoded with the quoted-printable encoding will work reliably over most mail gateways, but may not work perfectly over ...
... exist.) A higher level of confidence is offered by the base64 Content-Transfer-Encoding. A way to get reasonably reliable transport through EBCDIC ...
... newline conventions. If such alterations are likely to constitute a corruption of the data, it is probably more sensible to use the base64 encoding rather than the quoted-printable encoding. ...
... base64 encoding rather than the quoted-printable encoding. WARNING TO IMPLEMENTORS ...
... Base64 Content-Transfer-Encoding ...
... The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable. The encoding ...
... Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable. The encoding and decoding algorithms are simple, but the encoded data are consistently only about 33 percent larger than the ...
... algorithms are simple, but the encoded data are consistently only about 33 percent larger than the unencoded data. This encoding is virtually identical to the one used in Privacy Enhanced Mail (PEM ...
... PEM) applications, as defined in RFC 1421hist. The base64 encoding is adapted from RFC 1421hist, with one change: base64 ...
... identically in all versions of EBCDIC. Other popular encodings, such as the encoding used by the uuencode utility and the base85 ...
... EBCDIC. Other popular encodings, such as the encoding used by the uuencode utility and the base85 encoding specified as part of Level 2 PostScript ...
... such as the encoding used by the uuencode utility and the base85 encoding specified as part of Level 2 PostScript, do not share these properties, and thus do not fulfill the portability ...
... these properties, and thus do not fulfill the portability requirements a binary transport encoding for mail must meet. The encoding ...
... transport encoding for mail must meet. The encoding process represents 24-bit groups of input bits ...
... of which is translated into a single digit in the base64 alphabet. When encoding a bit stream via the base64 encoding, the bit stream ...
... When encoding a bit stream via the base64 encoding, the bit stream must be presumed to be ordered with the most-significant-bit ...
... Base64 Alphabet Value Encoding Value Encoding Value Encoding Value Encoding ...
... Value Encoding Value Encoding Value Encoding Value Encoding ...
... Value Encoding Value Encoding Value Encoding Value Encoding 0 A 17 R 34 i 51 z ...
... Encoding Value Encoding Value Encoding Value Encoding 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 ...
... Special processing is performed if fewer than 24 bits are available at the end of the data being encoded. A full encoding quantum is always completed at the end of a body. When fewer than 24 input bits ...
... input is an integral number of octets, only the following cases can arise: (1) the final quantum of encoding input is an integral multiple of 24 bits; here, the final unit of encoded output will be ...
... 24 bits; here, the final unit of encoded output will be an integral multiple of 4 characters with no "=" padding, (2) the final quantum of encoding input is exactly 8 bits; here, the final unit of encoded output will be two characters followed by two "=" ...
... 8 bits; here, the final unit of encoded output will be two characters followed by two "=" padding characters, or (3) the final quantum of encoding input is exactly 16 bits; here, the final unit of encoded output will be three ...
... base64-encoded data. The same applies to any illegal sequence of characters in the base64 encoding, such as "=====" Care must be taken to use the proper octets for line breaks ...
... Care must be taken to use the proper octets for line breaks if base64 encoding is applied directly to text material that has not been converted to canonical form. In particular, text line breaks ...
... line breaks must be converted into CRLF sequences prior to base64 encoding. The important thing to note is that this may be done directly by the encoder rather ...
... encapsulation boundaries within base64-encoded parts of multipart entities because no hyphen characters are used in the base64 encoding. ...


... character set includes 8-bit data, a Content-Transfer- Encoding header field and a corresponding encoding on the data are required in order to transmit the body via some mail transfer ...
... 8-bit data, a Content-Transfer- Encoding header field and a corresponding encoding on the data are required in order to transmit the body via some mail transfer protocols, such as SMTP ...
... ISO 2022), as well as 8-bit or multiple octet character encodings MUST use an appropriate character set specification to be consistent with this ...
... unrecognized subtype. As stated in the definition of the Content-Transfer-Encoding field, no encoding other than "7bit", "8bit ...
... As stated in the definition of the Content-Transfer-Encoding field, no encoding other than "7bit", "8bit", or "binary" is permitted for entities of type "multipart". The multipart delimiters and header fields ...
... RFC-1522]), and data within the body parts can be encoded on a part-by-part basis, with Content-Transfer-Encoding fields for each appropriate body part. ...
... transport and adequately documented in the Content-Transfer-Encoding header field. However, in no event are headers ...
... recipient, and hence is strongly encouraged. As stated in the definition of the Content-Transfer-Encoding field, no encoding other than "7bit", "8bit ...
... As stated in the definition of the Content-Transfer-Encoding field, no encoding other than "7bit", "8bit", or "binary" is permitted for messages or parts of type "message". Even stronger restrictions ...
... US-ASCII in any case, and data within the body can still be encoded, in which case the Content-Transfer-Encoding header field in the encapsulated ...
... Content-type: audio/basic Content-transfer-encoding: base64 ...
... Content-type: audio/basic Content-transfer-encoding: base64 ...
... audio data goes here... Note on encoding of MIME entities encapsulated inside message/partial ...
... them for the 7-bit world, aside from waiting for all of the parts, reassembling the message, and then encoding the reassembled data in base64 or quoted-printable ...
... MIME entities of type message/partial must always have a content- transfer-encoding of 7-bit (the default). In particular, even in environments that support binary or 8-bit ...
... 8-bit transport, the use of a content-transfer-encoding of "8bit" or "binary" is explicitly prohibited for entities of type message/partial. ...
... Content-ID: <id42@guppylake.bellcore.com> Content-Transfer-Encoding: binary THIS IS NOT REALLY THE BODY! ...
... this describes the size of the data in its canonical form, that is, before any Content- Transfer-Encoding has been applied or after the data have been decoded. ...
... MIME entities of type message/external-body must always have a content-transfer-encoding of 7-bit (the default). In particular, even in environments that ...
... 8-bit transport, the use of a content-transfer- encoding of "8bit" or "binary" is explicitly prohibited for entities of type message/external-body ...
... since the external body does not have a header section to declare its type. Similarly, any Content-transfer-encoding other than "7bit" must also be declared here. Thus a complete message/external-body ...
... Note that in the above examples, the default Content-transfer- encoding of "7bit" is assumed for the external postscript data. ...
... 7-bit and line length requirements, but might in fact be binary files. Thus a Content-Transfer-Encoding is not generally necessary, though it is permitted. ...
... application/octet-stream mail is to simply offer to put the data in a file, with any Content-Transfer-Encoding undone, or perhaps to use it as input to a user-specified process. ...
... insensitive. Two initial subtypes are "jpeg" for the JPEG format, JFIF encoding, and "gif" for GIF format [GIF]. ...


... Using the MIME-Version, Content-Type, and Content-Transfer-Encoding header fields, it is possible to include, in a standardized way, ...


... header field. 2. Recognize the Content-Transfer-Encoding header field, and decode all received data encoded with either the quoted-printable ...
... bit mail-ready representation using one of these transformations and include the appropriate Content-Transfer- Encoding header field, unless the underlying transport mechanism supports non-seven-bit ...
... remove either of the two types of Content-Transfer- Encoding defined in this document and put the resulting information in a user file. ...


... networking technologies and known broken MTAs unscathed. Note that anything encoded in the base64 encoding will satisfy these rules, but that some well-known mechanisms, notably the UNIX ...
... will not. Note also that anything encoded in the Quoted-Printable encoding will survive most gateways intact, but possibly not some gateways ...
... character set. (1) Under some circumstances the encoding used for data may change as part of normal gateway or user agent ...
... hard line breaks. (A simple way to do this is to use the quoted- printable encoding.) (5) Trailing "white space" characters (SPACE, TAB (HT)) on a line ...
... ASCII code 63) A maximally portable mail representation, such as the base64 encoding, will confine itself to relatively short lines of text in which the only meaningful characters are taken from this set of 73 characters. ...
... well. A careful composition agent can prevent these corruptions by encoding the data (e.g., in the quoted-printable encoding, ...
... by encoding the data (e.g., in the quoted-printable encoding, "=46rom " in place of "From " at the start of a line, and "=2E" in ...


... Content-Type: audio/basic Content-Transfer-Encoding: base64 ...
... Content-Type: image/gif Content-Transfer-Encoding: base64 ...
... charset=ISO-8859-1 Content-Transfer-Encoding: Quoted-printable ...


... supported by the transport and adequately documented in the Content-Transfer-Encoding header field. However, in no event are headers ...
... CRLF encoding := "Content-Transfer-Encoding" ":" mechanism ...
... encoding := "Content-Transfer-Encoding" ":" mechanism epilogue := discard-text ; to be ignored upon receipt. ...


... parameters for the message/external-body type, and possibly even Content-Transfer-Encoding values, are likely to have new values defined over time. In order to ensure that the set of such values is developed in an orderly, well-specified, and public manner, MIME ...
... Optional parameters: Encoding considerations: Security considerations ...


... charset Encoding notes: quoted-printable generally preferred if an encoding ...
... Encoding notes: quoted-printable generally preferred if an encoding is needed and the character set is mostly an ASCII ...
... Important Parameters: boundary Encoding notes: No content-transfer-encoding is permitted. ...
... Encoding notes: No content-transfer-encoding is permitted. ________________________________________________________ ...
... subject Encoding notes: No content-transfer-encoding is permitted. Specifically, only "7bit" is permitted for "message/partial" or ...
... Encoding notes: No content-transfer-encoding is permitted. Specifically, only "7bit" is permitted for "message/partial" or "message/external-body ...
... 1341(-> 1521(-> 2049draft | 2048(-> 4289 | 4288) | 2047draft | 2046draft | 2045draft)). Encoding notes: base64 preferred for unreadable subtypes. ...
... Important Parameters: none Encoding notes: base64 generally preferred ________________________________________________________________ ...
... Important Parameters: none Encoding notes: base64 generally preferred ________________________________________________________________ ...
... Important Parameters: none Encoding notes: base64 generally preferred ...


... Appendix G -- Canonical Encoding Model ...
... greatly from system to system. For this reason, a canonical model for encoding is presented below. The process of composing a MIME ...
... 822std11(-> 2822prop) is eliminated if the next step employs either quoted-printable or base64 encoding. Step 3. Apply transfer encoding ...
... base64 encoding. Step 3. Apply transfer encoding. A Content-Transfer-Encoding ...
... transfer encoding. A Content-Transfer-Encoding appropriate for this body is applied. Note that there is no fixed relationship between the content type and ...
... Note that there is no fixed relationship between the content type and the transfer encoding. In particular, it may be appropriate to base the choice of base64 or quoted-printable ...
... 1. In many cases the conversion to a canonical form prior to encoding will be subsumed into the encoder itself, which understands local formats directly. For example, the local ...
... Content-type: text/foo; charset=bar Content-Transfer-Encoding: base64 ...


... 10. MIME entities of type "message/partial" and "message/external- body" are now required to use only the "7bit" transfer-encoding. (Specifically, "binary" and "8bit" are not permitted.) ...


... Robinson, D. and R. Ullmann, "Encoding Header Field for Internet Messages", RFC 1154(-> 1505exp), Prime Computer, Inc., April 1990. ...



Google
Web
RFC-Ref