Как кодировать в ascii, base64, hex из файла в python - PullRequest
0 голосов
/ 16 декабря 2018

В следующем коде я преобразую файл изображения в строку в зависимости от выбора переключателей:

def convert_now(self):  
        self.img_data = ""
        self.img_data_encoded = ""
        file1 = open(self.filedict,'rb')
        self.img_data = file1.read()

        #RADIO_BUTTONS CHOICES, Convert to: 0-ascii, 1-base64, 2-Hex
        v = self.rvar.get()
        if v==0:
            self.img_data_encoded=self.img_data
        elif v==1:
            self.img_data_encoded=base64.b64encode(self.img_data) (!)
        elif v==2:
            self.img_data_encoded=base64.b16encode(self.img_data) (!!)

Я попытался получить строку base64 из файла изображения, используя эту строку (!)и сохранил его в строку с именем "st".
Затем я попытался получить шестнадцатеричную строку, используя эту (!!)

Проблема в том, что я сравнил результаты, полученные из приведенного выше кода, с этимиЯ получил с этого сайта «https://www.branah.com/ascii-converter", когда использовал« st »(строка base64 из кода)
, они вообще не совпадают.
Я что-то не так написал?

1 Ответ

0 голосов
/ 16 декабря 2018

Нет, не похоже, что вы сделали что-то не так.Ваш код выглядит хорошо.Кроме того, для меня и b64encode, и b16encode выдают тот же результат, что и веб-страница, на которую вы ссылаетесь.Вот пример.

>>> import base64
>>> base64.b64encode(b"test")
b'dGVzdA=='
>>> base64.b16encode(b"test")
b'74657374'

Вы можете сравнить это с результатами на веб-странице.Они совпадают.Итак, должно быть что-то еще не так.b64encode и b16encode работают нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...