In comp.lang.python, Chris Angelico <ros...@gmail.com> wrote: > Have you checked to see if Python can already do this? You mention
I'm sure there's a library already. I'm trying to mix library usage with my own code to get practice writing in python. In this case, I want code to deal with MIME encoding in email headers. I turned to a library for the base64 part and translated C code I once wrote for the quoted-printable part. I was struck by how complicated it seems to be to generate binary blobs in python, which makes me think I'm not getting something. >> Is there a more python-esque way to convert what should be plain ascii > What does "plain ASCII" actually mean, though? ASCII encoded binary data. ASCII is code points that fit in 7-bits comprising the characters found on a typical 1970s US oriented typewriter plus a few control characters. >> into a binary "bytes" object? In the use case I'm working towards the >> charset will not be ascii or UTF-8 all of the time, and the charset >> isn't the responsibility of the python code. Think "decode this if >> charset matches user-specified value, then output in that same charset; >> otherwise do nothing." > I'm not sure what this means, If the terminal expects this encoding, then decode the ASCII transport encoding and show the raw stream. If the terminal doesn't expect this encoding, do not decode. Python should be treating it as a a binary stream, and doesn't need to understand the encoding itself. > but I would strongly recommend just > encoding and decoding regardless. Use text internally and bytes at the > outside. That feels entirely wrong. I don't know what b'\x9A' means without knowing the character set and character encoding. If the encoding is a multibyte one, b'\x9A' doesn't mean anything on its own. That's why I want to treat it as binary. Elijah ------ thinking of an array of "unsigned char" not of characters -- https://mail.python.org/mailman/listinfo/python-list