[Python-Dev] Why does base64 return bytes? (original) (raw)
Terry Reedy tjreedy at udel.edu
Tue Jun 14 12:38:46 EDT 2016
- Previous message (by thread): [Python-Dev] Why does base64 return bytes?
- Next message (by thread): [Python-Dev] Why does base64 return bytes?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 6/14/2016 11:19 AM, Steven D'Aprano wrote:
Normally I'd take a question like this to Python-List, but this question has turned out to be quite diversive, with people having strong opinions but no definitive answer. So I thought I'd ask here and hope that some of the core devs would have an idea.
Why does base64 encoding in Python return bytes?
Ultimately, because we never decided to change this in 3.0.
base64.b64encode take bytes as input and returns bytes. Some people are arguing that this is wrong behaviour, as RFC 3548 specifies that Base64 should transform bytes to characters:
https://tools.ietf.org/html/rfc3548.html albeit US-ASCII characters. E.g.: The encoding process represents 24-bit groups of input bits as output strings of 4 encoded characters.
One could argue that 'encoded character' means 'bytes' in Python, but I don't know what the standard writer meant, as unicode characters always have some internal encoding.
[...] Each 6-bit group is used as an index into an array of 64 printable characters. The character referenced by the index is placed in the output string.
-- Terry Jan Reedy
- Previous message (by thread): [Python-Dev] Why does base64 return bytes?
- Next message (by thread): [Python-Dev] Why does base64 return bytes?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]