summaryrefslogtreecommitdiffstats
path: root/Doc/library
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-12-13 23:51:19 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-12-13 23:51:19 (GMT)
commit7ec754b7da863c5b0c5ca212da8a2585db989bf8 (patch)
treeb388a68e00b9ee639129033bc3983fbe94cb2a64 /Doc/library
parent796343b1988e3e47c9b400053f844c2bb0352d9a (diff)
downloadcpython-7ec754b7da863c5b0c5ca212da8a2585db989bf8.zip
cpython-7ec754b7da863c5b0c5ca212da8a2585db989bf8.tar.gz
cpython-7ec754b7da863c5b0c5ca212da8a2585db989bf8.tar.bz2
#1078919: make add_header automatically do RFC2231 encoding when needed.
Also document the use of three-tuples if control of the charset and language is desired.
Diffstat (limited to 'Doc/library')
-rw-r--r--Doc/library/email.message.rst21
1 files changed, 19 insertions, 2 deletions
diff --git a/Doc/library/email.message.rst b/Doc/library/email.message.rst
index 47c1fcd..386e11d 100644
--- a/Doc/library/email.message.rst
+++ b/Doc/library/email.message.rst
@@ -270,7 +270,15 @@ Here are the methods of the :class:`Message` class:
taken as the parameter name, with underscores converted to dashes (since
dashes are illegal in Python identifiers). Normally, the parameter will
be added as ``key="value"`` unless the value is ``None``, in which case
- only the key will be added.
+ only the key will be added. If the value contains non-ASCII characters,
+ it can be specified as a three tuple in the format
+ ``(CHARSET, LANGUAGE, VALUE)``, where ``CHARSET`` is a string naming the
+ charset to be used to encode the value, ``LANGUAGE`` can usually be set
+ to ``None`` or the empty string (see :RFC:`2231` for other possibilities),
+ and ``VALUE`` is the string value containing non-ASCII code points. If
+ a three tuple is not passed and the value contains non-ASCII characters,
+ it is automatically encoded in :RFC`2231` format using a ``CHARSET``
+ of ``utf-8`` and a ``LANGUAGE`` of ``None``.
Here's an example::
@@ -280,6 +288,15 @@ Here are the methods of the :class:`Message` class:
Content-Disposition: attachment; filename="bud.gif"
+ An example with with non-ASCII characters::
+
+ msg.add_header('Content-Disposition', 'attachment',
+ filename=('iso-8859-1', '', 'Fußballer.ppt'))
+
+ Which produces ::
+
+ Content-Disposition: attachment; filename*="iso-8859-1''Fu%DFballer.ppt"
+
.. method:: replace_header(_name, _value)
@@ -369,7 +386,7 @@ Here are the methods of the :class:`Message` class:
:rfc:`2231`, you can collapse the parameter value by calling
:func:`email.utils.collapse_rfc2231_value`, passing in the return value
from :meth:`get_param`. This will return a suitably decoded Unicode
- string whn the value is a tuple, or the original string unquoted if it
+ string when the value is a tuple, or the original string unquoted if it
isn't. For example::
rawparam = msg.get_param('foo')