Я пытаюсь кодировать двоичный файл с MIMEApplication в Python 3.3, как часть многопоточного MIME HTTP POST. У меня проблема, что символ 0x0d интерпретируется как новая строка 0xa, несмотря на то, что все установлено в двоичные байты.Создание многочастного MIME-сообщения с двоичным компонентом для HTTP-запроса в Python 3
Вот минимальный тестовый сценарий, с двоичной строки с 0x0D в нем, получая неправильно:
from email.encoders import encode_noop
from email.generator import BytesGenerator
from email.mime.application import MIMEApplication
import io
app = MIMEApplication(b'Q\x0dQ', _encoder=encode_noop)
b = io.BytesIO()
g = BytesGenerator(b)
g.flatten(app)
for i in b.getvalue()[-3:]:
print("%02x " % i, end="")
print()
Выход: 51 0a 51
, когда он должен быть 51 0d 51
Обратите внимание, что это для генерации двоичная часть для сообщения о множественном http POST.
Спасибо! Вы правы, это отвечает на вопрос, как было задано. Но знаете ли вы, как я могу использовать это как часть многопоточного сообщения MIME? Вот как мне на самом деле нужно это использовать. – Nils