Issue 17946: base64 encoding result should be str, not bytes (original) (raw)

As stated in RFC 3548:

Base encoding of data is used in many situations to store or transfer data in environments that, perhaps for legacy reasons, are restricted to only US-ASCII [9] data.

thus, I was surprised to see, when I used base64 for the first time in python 3, that the encodig result was bytes, not str. Well, if I am encoding something to base64, I am most certainly needing it as a printable ASCII string, not as an binary byte array.

Thus, I suggest that the output of: base64.b64encode(data) to be, instead, the output of: base64.b64encode(data).decode('ascii')

This has been discussed numerous times. There are just as many times when you want the output to be binary (because you are about to send it on the wire). However, the deciding factor is that the API is now what it is, and changing it at this point would be backward incompatible, so we won't do that.