Удалить символ 'b' перед строковым литералом в Python 3
Я новичок в программировании на питоне, и я немного смущен. Я пытаюсь получить байты из строки в хэш и зашифровать, но я получил
b'...'
b перед строкой, как в приведенном ниже примере. Есть ли способ избежать этого? Может ли кто-нибудь дать решение? Извините за этот глупый вопрос
import hashlib
text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
ВЫВОД:
print b'my secret data'
Ответы
Ответ 1
Декодирование избыточно
У вас была только эта "ошибка" в первую очередь из-за непонимания происходящего.
Вы получаете b
потому что вы закодированы в utf-8
и теперь это объект байтов.
>> type("text".encode("utf-8"))
>> <class 'bytes'>
Исправления:
- Вы можете просто напечатать строку сначала
- Излишне декодировать его после кодирования
Ответ 2
Это должно сделать трюк:
pw_bytes.decode("utf-8")
Ответ 3
Здесь u Go
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
Ответ 4
См. Это видео для лучшего простого решения snd https://youtu.be/l-cGpIB76Lw