This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: base64 encoding result should be str, not bytes
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.3
process
Status: closed Resolution: rejected
Dependencies: Superseder:
Assigned To: Nosy List: Lucas.Vella, r.david.murray
Priority: normal Keywords:

Created on 2013-05-09 18:05 by Lucas.Vella, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (2)
msg188786 - (view) Author: Lucas Clemente Vella (Lucas.Vella) Date: 2013-05-09 18:05
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')
msg188788 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-05-09 19:14
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.
History
Date User Action Args
2022-04-11 14:57:45adminsetgithub: 62146
2013-05-09 19:14:12r.david.murraysetstatus: open -> closed

nosy: + r.david.murray
messages: + msg188788

resolution: rejected
stage: resolved
2013-05-09 18:05:15Lucas.Vellacreate