I have some python 2 code: def decode(key, string): decoded_chars = [] string = base64.urlsafe_b64decode(string) for i in range(len(string)): key_c = key[i % len(key)] encoded_c = chr(abs(ord(string[i]) - ord(key_c) % 256)) decoded_chars.append(encoded_c) decoded_string = "".join(decoded_chars) return decoded_string
and if I call it like this in py2 it works as expected: s = 'V3NYVY95iImnnJWCmqphWFFzU1qvqsV6x83Mxa7HipZitZeMxbe709jJtbfW6Y6blQ==' key = '!@#$VERYsecRet)(' decode(key, s) In py3 it fails with TypeError: ord() expected string of length 1, but int found I know that in py3 base64.urlsafe_b64decode is returning bytes not chars and that is what that is happening, and I thought the solution would be to decode it, but what codec would I use for this? -- https://mail.python.org/mailman/listinfo/python-list