import codecs, io try: ascii except NameError: ascii = repr b = b'\x41\xF5\x42\x43\xF4' print(ascii(b.decode('utf8', 'replace'))) with open('temp.bin', 'wb') as fout: fout.write(b) with codecs.open('temp.bin', encoding='utf8', errors='replace') as fin: print(ascii(fin.read())) with io.open('temp.bin', 'rt', encoding='utf8', errors='replace') as fin: print(ascii(fin.read()))