On Saturday, April 13, 2002, at 06:13 , Fil wrote:
Since I upgraded to have iso_xxx compliant subjects, I notice that most emails go through with TWO spaces after the usual subject_prefix, on all lists. I don't really mind, but just wanted to mention it.
Precisely, here's how it happens :
"Subject: =?iso-8859-1?q?=5Bspip-dev=5D_?=" " petite mise a jour =?iso-8859-1?Q?s=E9curi?=" " =?iso-8859-1?Q?t=E9?= inc_auth_cookie"
This is an interesting side case. RFC 2047 says that between encoded words, whitespace is to be ignored; however, here, we have encoded words with US-ASCII in between them.
I think the email.Header package I wrote is doing the wrong thing here.
Either we need represent the whole thing as one or more encoded-words,
or we need to be super anal about whitespace between encoded-words and
non- encoded-words.
I am currently moving from Tokyo to California, but when I get back and settled I will take a long hard look at this issue. I agree that it's pretty important, and that email.Header is doing the wrong thing with respect to whitespace between encoded-words and non- encoded-words:
from email.Header import Header, decode_header from email.Charset import Charset f = Charset("iso-8859-1") z = Header("Zout alours!", f) z <email.Header.Header instance at 0x811b754> print z =?iso-8859-1?q?Zout_alours!?= z.append(" Hello?") print z =?iso-8859-1?q?Zout_alours!?= Hello? decode_header(z) [('Zout alours!', 'iso-8859-1'), ('Hello?', None)]
Here, the whitespace should *not* be disappearing in decode_header, and in fact there should only be one space between the encoded-word and "Hello?" in the printed-out header.
It's certainly a thinko in email.Header. I will work on this in a week or so..
Ben