| This test data is part of rfc2045 which includes all characters a~z A~Z, 0~9 and all symbols, | |
| It is used to test java.util.Base64.Encoder, and will be encoded by org.apache.commons.codec.binary.Base64.java | |
| to test java.util.Base64.Decoder; | |
| Freed & Borenstein Standards Track [Page 1] | |
| RFC 2045 Internet Message Bodies November 1996 | |
| These documents are revisions of RFCs 1521, 1522, and 1590, which | |
| themselves were revisions of RFCs 1341 and 1342. An appendix in RFC | |
| 2049 describes differences and changes from previous versions. | |
| Table of Contents | |
| 1. Introduction ......................................... 3 | |
| 2. Definitions, Conventions, and Generic BNF Grammar .... 5 | |
| 3. MIME Header Fields ................................... 8 | |
| 4. MIME-Version Header Field ............................ 8 | |
| 5. Content-Type Header Field ............................ 10 | |
| 6. Content-Transfer-Encoding Header Field ............... 14 | |
| 7. Content-ID Header Field .............................. 26 | |
| 8. Content-Description Header Field ..................... 27 | |
| 9. Additional MIME Header Fields ........................ 27 | |
| 10. Summary ............................................. 27 | |
| 11. Security Considerations ............................. 27 | |
| 12. Authors' Addresses .................................. 28 | |
| A. Collected Grammar .................................... 29 | |
| Freed & Borenstein Standards Track [Page 7] | |
| RFC 2045 Internet Message Bodies November 1996 | |
| 3. MIME Header Fields | |
| MIME defines a number of new RFC 822 header fields that are used to | |
| describe the content of a MIME entity. These header fields occur in | |
| at least two contexts: | |
| (1) As part of a regular RFC 822 message header. | |
| (2) In a MIME body part header within a multipart | |
| construct. | |
| The formal definition of these header fields is as follows: | |
| MIME-message-headers := entity-headers | |
| fields | |
| version CRLF | |
| ; The ordering of the header | |
| ; fields implied by this BNF | |
| ; definition should be ignored. | |
| MIME-part-headers := entity-headers | |
| [ fields ] | |
| ; Any field not beginning with | |
| ; "content-" can have no defined | |
| ; meaning and may be ignored. | |
| ; The ordering of the header | |
| ; fields implied by this BNF | |
| ; definition should be ignored. | |
| The syntax of the various specific MIME header fields will be | |
| described in the following sections. | |
| Freed & Borenstein Standards Track [Page 11] | |
| RFC 2045 Internet Message Bodies November 1996 | |
| 5.1. Syntax of the Content-Type Header Field | |
| In the Augmented BNF notation of RFC 822, a Content-Type header field | |
| value is defined as follows: | |
| content := "Content-Type" ":" type "/" subtype | |
| *(";" parameter) | |
| ; Matching of media type and subtype | |
| ; is ALWAYS case-insensitive. | |
| type := discrete-type / composite-type | |
| discrete-type := "text" / "image" / "audio" / "video" / | |
| "application" / extension-token | |
| composite-type := "message" / "multipart" / extension-token | |
| extension-token := ietf-token / x-token | |
| ietf-token := <An extension token defined by a | |
| standards-track RFC and registered | |
| with IANA.> | |
| x-token := <The two characters "X-" or "x-" followed, with | |
| no intervening white space, by any token> | |
| subtype := extension-token / iana-token | |
| iana-token := <A publicly-defined extension token. Tokens | |
| of this form must be registered with IANA | |
| as specified in RFC 2048.> | |
| parameter := attribute "=" value | |
| attribute := token | |
| ; Matching of attributes | |
| ; is ALWAYS case-insensitive. | |
| value := token / quoted-string | |
| token := 1*<any (US-ASCII) CHAR except SPACE, CTLs, | |
| or tspecials> | |
| tspecials := "(" / ")" / "<" / ">" / "@" / | |
| "," / ";" / ":" / "\" / <"> | |
| "/" / "[" / "]" / "?" / "=" | |
| ; Must be in quoted-string, | |
| ; to use within parameter values | |
| description := "Content-Description" ":" *text | |
| encoding := "Content-Transfer-Encoding" ":" mechanism | |
| entity-headers := [ content CRLF ] | |
| [ encoding CRLF ] | |
| [ id CRLF ] | |
| [ description CRLF ] | |
| *( MIME-extension-field CRLF ) | |
| hex-octet := "=" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F") | |
| ; Octet must be used for characters > 127, =, | |
| ; SPACEs or TABs at the ends of lines, and is | |
| ; recommended for any character not listed in | |
| ; RFC 2049 as "mail-safe". | |
| RFC 2045 Internet Message Bodies November 1996 | |
| must be used. An equal sign as the last character on a | |
| encoded line indicates such a non-significant ("soft") | |
| line break in the encoded text. | |
| Thus if the "raw" form of the line is a single unencoded line that | |
| says: | |
| Now's the time for all folk to come to the aid of their country. | |
| This can be represented, in the Quoted-Printable encoding, as: | |
| Now's the time = | |
| for all folk to come= | |
| to the aid of their country. | |
| Since the hyphen character ("-") may be represented as itself in the | |
| Quoted-Printable encoding, care must be taken, when encapsulating a | |
| quoted-printable encoded body inside one or more multipart entities, | |
| to ensure that the boundary delimiter does not appear anywhere in the | |
| encoded body. (A good strategy is to choose a boundary that includes | |
| a character sequence such as "=_" which can never appear in a | |
| quoted-printable body. See the definition of multipart messages in | |
| RFC 2046.) | |
| !"#$@[\]^`{|}~% | |
| Freed & Borenstein Standards Track [Page 24] | |
| RFC 2045 Internet Message Bodies November 1996 | |
| Table 1: The Base64 Alphabet | |
| Value Encoding Value Encoding Value Encoding Value Encoding | |
| 0 A 17 R 34 i 51 z | |
| 1 B 18 S 35 j 52 0 | |
| 2 C 19 T 36 k 53 1 | |
| 3 D 20 U 37 l 54 2 | |
| 4 E 21 V 38 m 55 3 | |
| 5 F 22 W 39 n 56 4 | |
| 6 G 23 X 40 o 57 5 | |
| 7 H 24 Y 41 p 58 6 | |
| 8 I 25 Z 42 q 59 7 | |
| 9 J 26 a 43 r 60 8 | |
| 10 K 27 b 44 s 61 9 | |
| 11 L 28 c 45 t 62 + | |
| 12 M 29 d 46 u 63 / | |
| 13 N 30 e 47 v | |
| 14 O 31 f 48 w (pad) = | |
| 15 P 32 g 49 x | |
| 16 Q 33 h 50 y |