Remove 'b' character do in front of a string literal in Python 3

PythonStringEncryptionBinary

Python Problem Overview


I am new in python programming and i am a bit confused. I try to get the bytes from a string to hash and encrypt but i got

b'...'

b character in front of string just like the below example. Is any way avoid this?.Can anyone give a solution? Sorry for this silly question

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)

OUTPUT:

 print b'my secret data'

Python Solutions


Solution 1 - Python

This should do the trick:

pw_bytes.decode("utf-8")

Solution 2 - Python

Here u Go

f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)

Solution 3 - Python

Decoding is redundant

You only had this "error" in the first place, because of a misunderstanding of what's happening.

You get the b because you encoded to utf-8 and now it's a bytes object.

 >> type("text".encode("utf-8"))
 >> <class 'bytes'>

Fixes:

  1. You can just print the string first
  2. Redundantly decode it after encoding

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPanagiotis DrakatosView Question on Stackoverflow
Solution 1 - PythonkrockView Answer on Stackoverflow
Solution 2 - PythonMuhammad YounusView Answer on Stackoverflow
Solution 3 - PythonPythonistaView Answer on Stackoverflow