[Python-Dev] Dropping bytes "support" in json
Stephen J. Turnbull
turnbull at sk.tsukuba.ac.jp
Fri Apr 10 21:22:09 CEST 2009
Robert Brewer writes:
> Syntactically, there's no sense in providing:
>
> Message.set_header('Subject', 'Some text', encoding='utf-16')
>
> ...since you could more clearly write the same as:
>
> Message.set_header('Subject', 'Some text'.encode('utf-16'))
Which you now must *parse* and guess the encoding to determine how to
RFC-2047-encode the binary mush. I think the encoding parameter is
necessary here.
> But it would be far easier to do all the encoding at once in an
> output() or serialize() method. Do different headers need different
> encodings?
You can have multiple encodings within a single header (and a naïve
algorithm might very well encode "The price of Gödel-Escher-Bach is
€25" as "The price of =?ISO-8859-1?Q?G=F6del-Escher-Bach?= is
=?ISO-8859-15?Q?=A425?=").
> If so, make message['Subject'] a subclass of str and give it an
> .encoding attribute (with a default).
But if you've set the .encoding attribute, you don't need to encode
'Some text'; .set_header() can take care of it for you. And what
about the possibility that the encoding attributes disagree with the
argument you passed to the codec?
More information about the Python-Dev
mailing list