Python интерпретирует \n как 0xd0 при чтении в виде байтов.Python

Программы на Python
Anonymous
Python интерпретирует \n как 0xd0 при чтении в виде байтов.

Сообщение Anonymous »

новая строка интерпретируется как Ð (0xd0) вместо (0x0a), и я искренне не знаю, как это исправить. Я тоже не знаю, с чего начать.
При попытке использовать этот код он читает 0x0a как 0xd0.

Код: Выделить всё

with open(path, "rb") as root:
b_arr = root.read() + b" "
print("Processing...")
buffer = ""
b_arr_wizard = ""
chars = ""
for i in range(len(b_arr)):
if i % 16 == 0 or i == len(b_arr)-1:

print(len(buffer))
buffer += " "*((16*3)-len(buffer))
buffer += "| "
for _ in buffer.split():
if _ == "|":
continue

#print(_)
if int(_, base=16) >= 32:
buffer += chr(int(_, base=16))
chars += chr(int(_, base=16))
else:
buffer += "."
chars += chr(int(_, base=16))
b_arr_wizard += buffer + "\n"
buffer = ""

buffer += str(hex(b_arr[i])[2:])+ "0"*(2-len(str(hex(b_arr[i])[2:]))) + " "
используется в файле:

Код: Выделить всё

abc
def
возвращает:

Код: Выделить всё

61 62 63 d0 a0 64 65 66                         | abcРdef


Подробнее здесь: https://stackoverflow.com/questions/788 ... g-as-bytes

Вернуться в «Python»