Event element encoding
Robert Leftwich <[email protected]> Tue, 23 Mar 2004 07:25:35 +1100
| Newsgroups | gmane.comp.web.mod-pubsub.devel |
|---|---|
| Message-ID | <[email protected]> |
At 04:15 AM 23/03/2004, Adam Rifkin wrote: >pubsublib.py is stubbed out for a lot of features we were >one day going to get to, but it was the goal in starting >that library to make it a reference implementation for other >client libraries. With that in mind, what are the rules for encoding event element names and values? The protocol document says "A server will always escape the following bytes: colon (U+003A), the equals sign (U+003D), and leading and trailing spaces (U+0020) in element names and values. Other bytes may be escaped, as in the above example (where all control characters are escaped.) ". - with the 'Other bytes *may* be escaped' not being very helpful :-) The pubsub server code only encodes "=:\n" for the headers and "=\n" for the value using an internal function. The pubsub client says " Header name and value, for the named headers, may contain quoted bytes written quoted-printable style as an equal sign followed by 2 hexadecimal digits. Specifically, any colons in the header name, any leading horizonal_whitespace in the value, and any vertical_whitespace or equal signs in the header or value, must be quoted this way." and then uses the Python quopri.decode library function which does things a little differently, i.e. it uses the 'Q' encoding which is similar to "Quoted-Printable" but is different in significant areas, e.g. it may represent spaces as underscores, according to the RFC it is based on. Robert --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.634 / Virus Database: 406 - Release Date: 18/03/2004