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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4