< draft-freed-pvcsc-02.txt   draft-freed-pvcsc-03.txt >
Network Working Group Ned Freed Network Working Group Ned Freed
Internet Draft Keith Moore Internet Draft Keith Moore
<draft-freed-pvcsc-02.txt> <draft-freed-pvcsc-03.txt>
MIME Parameter Value and Encoded Word Extensions: MIME Parameter Value and Encoded Word Extensions:
Character Sets, Languages, and Continuations Character Sets, Languages, and Continuations
March 1997 June 1997
Status of this Memo Status of this Memo
This document is an Internet-Draft. Internet-Drafts are This document is an Internet-Draft. Internet-Drafts are
working documents of the Internet Engineering Task Force working documents of the Internet Engineering Task Force
(IETF), its areas, and its working groups. Note that other (IETF), its areas, and its working groups. Note that other
groups may also distribute working documents as Internet- groups may also distribute working documents as Internet-
Drafts. Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six
skipping to change at page 2, line ? skipping to change at page 2, line ?
by other documents at any time. It is not appropriate to use by other documents at any time. It is not appropriate to use
Internet-Drafts as reference material or to cite them other Internet-Drafts as reference material or to cite them other
than as a "working draft" or "work in progress". than as a "working draft" or "work in progress".
To learn the current status of any Internet-Draft, please To learn the current status of any Internet-Draft, please
check the 1id-abstracts.txt listing contained in the check the 1id-abstracts.txt listing contained in the
Internet-Drafts Shadow Directories on ds.internic.net (US East Internet-Drafts Shadow Directories on ds.internic.net (US East
Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast),
or munnari.oz.au (Pacific Rim). or munnari.oz.au (Pacific Rim).
The current draft of this memo reflects comments received
during the last call period. In particular, a reference to RFC
2119 has been added, as have some directives on how to handle
character sets with embedded language tagging facilities.
1. Abstract 1. Abstract
This memo defines extensions to the RFC 2045 media type and This memo defines extensions to the RFC 2045 media type and
RFC CDISP disposition parameter value mechanisms to provide RFC CDISP disposition parameter value mechanisms to provide
(1) a means to specify parameter values in character sets (1) a means to specify parameter values in character sets
other than US-ASCII, other than US-ASCII,
(2) to specify the language to be used should the value be (2) to specify the language to be used should the value be
displayed, and displayed, and
(3) a continuation mechanism for long parameter values to (3) a continuation mechanism for long parameter values to
avoid problems with header line wrapping. avoid problems with header line wrapping.
This memo also defines an extension to the encoded words This memo also defines an extension to the encoded words
defined in RFC 2047 to allow the specification of the language defined in RFC 2047 to allow the specification of the language
to be used for display as well as the character set. to be used for display as well as the character set.
skipping to change at page 3, line 16 skipping to change at page 3, line 21
appear in, are limited to 7bit US-ASCII, and the appear in, are limited to 7bit US-ASCII, and the
encoded-word mechanisms of RFC 2047 are not available encoded-word mechanisms of RFC 2047 are not available
to parameter values. This makes it impossible to have to parameter values. This makes it impossible to have
parameter values in character sets other than US-ASCII parameter values in character sets other than US-ASCII
without specifying some sort of private per-parameter without specifying some sort of private per-parameter
encoding. encoding.
(3) It has recently become clear that character set (3) It has recently become clear that character set
information is not sufficient to properly display some information is not sufficient to properly display some
sorts of information -- language information is also sorts of information -- language information is also
needed [RFC-IAB-CHARSETS]. For example, support for needed [RFC-2130]. For example, support for
handicapped users may require reading text string handicapped users may require reading text string
aloud. The language the text is written in is needed aloud. The language the text is written in is needed
for this to be done correctly. Some parameter values for this to be done correctly. Some parameter values
may need to be displayed, hence there is a need to may need to be displayed, hence there is a need to
allow for the inclusion of language information. allow for the inclusion of language information.
The last problem on this list is also an issue for the encoded The last problem on this list is also an issue for the encoded
words defined by RFC 2047, as encoded words are intended words defined by RFC 2047, as encoded words are intended
primarily for display purposes. primarily for display purposes.
skipping to change at page 3, line 39 skipping to change at page 3, line 44
fashion that is completely compatible at a syntactic level fashion that is completely compatible at a syntactic level
with existing MIME implementations. In addition, the with existing MIME implementations. In addition, the
extensions are designed to have as little impact as possible extensions are designed to have as little impact as possible
on existing uses of MIME. on existing uses of MIME.
IMPORTANT NOTE: These mechanisms end up being somewhat IMPORTANT NOTE: These mechanisms end up being somewhat
gibbous when they actually are used. As such, use of these gibbous when they actually are used. As such, use of these
mechanisms should not be used lightly; they should be reserved mechanisms should not be used lightly; they should be reserved
for situations where a real need for them exists. for situations where a real need for them exists.
2.1. Requirements notation
This document occasionally uses terms that appear in capital
letters. When the terms "MUST", "SHOULD", "MUST NOT", "SHOULD
NOT", and "MAY" appear capitalized, they are being used to
indicate particular requirements of this specification. A
discussion of the meanings of these terms appears in [RFC-
2119].
3. Parameter Value Continuations 3. Parameter Value Continuations
Long MIME media type or disposition parameter values do not Long MIME media type or disposition parameter values do not
interact well with header line wrapping conventions. In interact well with header line wrapping conventions. In
particular, proper header line wrapping depends on there being particular, proper header line wrapping depends on there being
places where linear whitespace (LWSP) is allowed, which may or places where linear whitespace (LWSP) is allowed, which may or
may not be present in a parameter value, and even if present may not be present in a parameter value, and even if present
may not be recognizable as such since specific knowledge of may not be recognizable as such since specific knowledge of
parameter value syntax may not be available to the agent doing parameter value syntax may not be available to the agent doing
the line wrapping. The result is that long parameter values the line wrapping. The result is that long parameter values
may end up getting truncated or otherwise damaged by incorrect may end up getting truncated or otherwise damaged by incorrect
line wrapping implementations. line wrapping implementations.
A mechanism is therefore needed to break up parameter values A mechanism is therefore needed to break up parameter values
into smaller units that are amenable to line wrapping. Any into smaller units that are amenable to line wrapping. Any
such mechanism must be compatible with existing MIME such mechanism MUST be compatible with existing MIME
processors. This means that processors. This means that
(1) the mechanism must not change the syntax of MIME media (1) the mechanism MUST NOT change the syntax of MIME media
type and disposition lines, and type and disposition lines, and
(2) the mechanism must not depend on parameter ordering (2) the mechanism MUST NOT depend on parameter ordering
since MIME states that parameters are not order since MIME states that parameters are not order
sensitive. Note that while MIME does prohibit sensitive. Note that while MIME does prohibit
modification of MIME headers during transport, it is modification of MIME headers during transport, it is
still possible that parameters will be reordered when still possible that parameters will be reordered when
user agent level processing is done. user agent level processing is done.
The obvious solution, then, is to use multiple parameters to The obvious solution, then, is to use multiple parameters to
contain a single parameter value and to use some kind of contain a single parameter value and to use some kind of
distinguished name to indicate when this is being done. And distinguished name to indicate when this is being done. And
this obvious solution is exactly what is specified here: The this obvious solution is exactly what is specified here: The
skipping to change at page 5, line 32 skipping to change at page 6, line 4
Specifically, an asterisk at the end of a parameter name acts Specifically, an asterisk at the end of a parameter name acts
as an indicator that character set and language information as an indicator that character set and language information
may appear at the beginning of the parameter value. A single may appear at the beginning of the parameter value. A single
quote is used to separate the character set, language, and quote is used to separate the character set, language, and
actual value information in the parameter value string, and an actual value information in the parameter value string, and an
percent sign is used to flag octets encoded in hexadecimal. percent sign is used to flag octets encoded in hexadecimal.
For example: For example:
Content-Type: application/x-stuff; Content-Type: application/x-stuff;
title*=us-ascii'en'This%20is%20%2A%2A%2Afun%2A%2A%2A title*=us-ascii'en-us'This%20is%20%2A%2A%2Afun%2A%2A%2A
Note that it is perfectly permissible to leave either the Note that it is perfectly permissible to leave either the
character set or language field blank. This is done when character set or language field blank. Note also that the
either character set, language, or both are not relevant to single quote delimiters MUST be present even when one of the
the parameter value at hand. This MUST NOT be done in order field values is omitted. This is done when either character
to indicate a default character set or language -- parameter set, language, or both are not relevant to the parameter value
field definitions MUST NOT assign a default character set or at hand. This MUST NOT be done in order to indicate a default
lanugage. character set or language -- parameter field definitions MUST
NOT assign a default character set or lanugage.
4.1. Combining Character Set, Language, and Parameter 4.1. Combining Character Set, Language, and Parameter
Continuations Continuations
Character set and language information may be combined with Character set and language information may be combined with
the parameter continuation mechanism. For example: the parameter continuation mechanism. For example:
Content-Type: application/x-stuff Content-Type: application/x-stuff
title*1*=us-ascii'en'This%20is%20even%20more%20 title*1*=us-ascii'en'This%20is%20even%20more%20
title*2*=%2A%2A%2Afun%2A%2A%2A%20 title*2*=%2A%2A%2Afun%2A%2A%2A%20
skipping to change at page 6, line 34 skipping to change at page 7, line 10
(5) If the first segment of a continued parameter value is (5) If the first segment of a continued parameter value is
encoded the language and character set field delimiters encoded the language and character set field delimiters
MUST be present even when the fields are left blank. MUST be present even when the fields are left blank.
5. Language specification in Encoded Words 5. Language specification in Encoded Words
RFC 2047 provides support for non-US-ASCII character sets in RFC 2047 provides support for non-US-ASCII character sets in
RFC 822 message header comments, phrases, and any unstructured RFC 822 message header comments, phrases, and any unstructured
text field. This is done by defining an encoded word text field. This is done by defining an encoded word
construct which can appear in any of these places. Given that construct which can appear in any of these places. Given that
these are fields intended for display, it is sometimes these are fields intended for display, it is sometimes
necessary to associate language information with encoded words necessary to associate language information with encoded words
as well as just the character set. This specification extends as well as just the character set. This specification extends
the definition of an encoded word to allow the inclusion of the definition of an encoded word to allow the inclusion of
such information. This is simply done by suffixing the such information. This is simply done by suffixing the
character set specification with an asterisk followed by the character set specification with an asterisk followed by the
language tag. For example: language tag. For example:
From: =?US-ASCII*EN?Q?Keith_Moore?= <moore@cs.utk.edu> From: =?US-ASCII*EN?Q?Keith_Moore?= <moore@cs.utk.edu>
6. IMAP4 Handling of Parameter Values 6. IMAP4 Handling of Parameter Values
IMAP4 [RFC-1730] servers SHOULD decode parameter value IMAP4 [RFC-2060] servers SHOULD decode parameter value
continuations when generating the BODY and BODYSTRUCTURE fetch continuations when generating the BODY and BODYSTRUCTURE fetch
attributes. attributes.
7. Modifications to MIME ABNF 7. Modifications to MIME ABNF
The ABNF for MIME parameter values given in RFC 2045 is: The ABNF for MIME parameter values given in RFC 2045 is:
parameter := attribute "=" value parameter := attribute "=" value
attribute := token attribute := token
skipping to change at page 8, line 25 skipping to change at page 8, line 43
language := <registered language tag [RFC-1766]> language := <registered language tag [RFC-1766]>
The ABNF given in RFC 2047 for encoded-words is: The ABNF given in RFC 2047 for encoded-words is:
encoded-word := "=?" charset "?" encoding "?" encoded-text "?=" encoded-word := "=?" charset "?" encoding "?" encoded-text "?="
This specification changes this ABNF to: This specification changes this ABNF to:
encoded-word := "=?" charset ["*" language] "?" encoded-text "?=" encoded-word := "=?" charset ["*" language] "?" encoded-text "?="
8. Security Considerations 8. Character sets which allow specification of language
In the future it is likely that some character sets will
provide facilities for inline language labelling. Such
facilities are inherently more flexible than those defined
here as they allow for language switching in the middle of a
string.
If and when such facilities are developed they SHOULD be used
in preference to the language labelling facilities specified
here. Note that all the mechanisms defined here allow for the
omission of language labels so as to be able to accomodate
this possible future usage.
9. Security Considerations
This RFC does not discuss security issues and is not believed This RFC does not discuss security issues and is not believed
to raise any security issues not already endemic in electronic to raise any security issues not already endemic in electronic
mail and present in fully conforming implementations of MIME. mail and present in fully conforming implementations of MIME.
9. References 10. References
[RFC-822] [RFC-822]
Crocker, D., "Standard for the Format of ARPA Internet Crocker, D., "Standard for the Format of ARPA Internet
Text Messages", RFC 822 August, 1982. Text Messages", RFC 822 August, 1982.
[RFC-1730]
Crispin, M., "Internet Message Access Protocol - Version
4", RFC 1730, December 1994.
[RFC-1766] [RFC-1766]
Alvestrand, H., "Tags for the Identification of Alvestrand, H., "Tags for the Identification of
Languages", RFC 1766, March, 1995. Languages", RFC 1766, March, 1995.
[RFC-CDISP]
Troost, R., Dorner, S., and Moore, K., "Communicating
Presentation Information in Internet Messages: The
Content-Disposition Header", Internet Draft, February
1997.
[RFC-2045] [RFC-2045]
Freed, N. and Borenstein, N., "Multipurpose Internet Mail Freed, N. and Borenstein, N., "Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet Message Extensions (MIME) Part One: Format of Internet Message
Bodies", RFC 2045, Innosoft, First Virtual Holdings, Bodies", RFC 2045, Innosoft, First Virtual Holdings,
December 1996. December 1996.
[RFC-2046] [RFC-2046]
Freed, N. and Borenstein, N., "Multipurpose Internet Mail Freed, N. and Borenstein, N., "Multipurpose Internet Mail
Extensions (MIME) Part Two: Media Types", RFC 2046, Extensions (MIME) Part Two: Media Types", RFC 2046,
Innosoft, First Virtual Holdings, December 1996. Innosoft, First Virtual Holdings, December 1996.
skipping to change at page 10, line 5 skipping to change at page 10, line 23
Internet Mail Extensions (MIME) Part Four: MIME Internet Mail Extensions (MIME) Part Four: MIME
Registration Procedures", RFC 2048, Innosoft, MCI, ISI, Registration Procedures", RFC 2048, Innosoft, MCI, ISI,
December 1996. December 1996.
[RFC-2049] [RFC-2049]
Freed, N. and Borenstein, N., "Multipurpose Internet Mail Freed, N. and Borenstein, N., "Multipurpose Internet Mail
Extensions (MIME) Part Five: Conformance Criteria and Extensions (MIME) Part Five: Conformance Criteria and
Examples", RFC 2049, Innosoft, FIrst Virtual Holdings, Examples", RFC 2049, Innosoft, FIrst Virtual Holdings,
December 1996. December 1996.
[RFC-IAB-CHARSETS] [RFC-2060]
Crispin, M., "Internet Message Access Protocol - Version
4rev1", RFC 2060, December 1996.
[RFC-2119]
Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119, March 1997.
[RFC-2130]
Weider, C., Preston, C., Simonsen, K., Alvestrand, H., Weider, C., Preston, C., Simonsen, K., Alvestrand, H.,
Atkinson, R., Crispin, M., Svanberg, P., "Report from the Atkinson, R., Crispin, M., Svanberg, P., "Report from the
IAB Character Set Workshop", Version 3.0, November 1996. IAB Character Set Workshop", RFC 2130, April 1997.
10. Authors' Addresses [RFC-CDISP]
Troost, R., Dorner, S., and Moore, K., "Communicating
Presentation Information in Internet Messages: The
Content-Disposition Header", Internet Draft, February
1997.
11. Authors' Addresses
Ned Freed Ned Freed
Innosoft International, Inc. Innosoft International, Inc.
1050 East Garvey Avenue South 1050 East Garvey Avenue South
West Covina, CA 91790 West Covina, CA 91790
USA USA
tel: +1 818 919 3600 fax: +1 818 919 3614 tel: +1 818 919 3600 fax: +1 818 919 3614
email: ned@innosoft.com email: ned@innosoft.com
Keith Moore Keith Moore
 End of changes. 20 change blocks. 
31 lines changed or deleted 63 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/