Multiple ways to Convert Bytes to/from strings in Python
The string is a group of characters(or Unicode) enclosed in single or double quotes in Python.
Byte is a binary string that contains the value of a string prefixed with a b
(utf-8) or a
(ASCII) character.
For example
str = "hello" # String variable
utf8bytes = b"hello" # bytes variable with utf-8 encoded
asciibytes = a "hello" # bytes variable with ASCII encoded
Both hold different types of values, Automatic conversion is not possible. manually need conversion from/to string to binary string or bytes in Python
Default encoding in Python 2 is ASCII
and Python 3 is utf-8
.
Let’s see an example
Python Convert String to Byte Example
Multiple ways we can convert String to Byte types in Python
- use the String encode function
encode
function converts the string into bytes.
Syntax:
encode([encoding],[errors])
encoding
and errors
are optional parameters.
If there are no options, From Python 3 onwards, the Default encoding is utf-8
, For Python 2 users, ASCII
is the default encoding and does not work in Python 2.
you can change encoding to other options latin1
,utf_32
etc.
str="hello";
result=str.encode('utf-8','ignore')
print(result); # b'hello'
print(type(result)); # <class 'bytes'>
- use byte constructor
The byte
constructor takes a string variable and encoding returns bytes of a string value.
Example
str="hello";
b= bytes(str,'utf-8');
print(b); # b'hello'
print(type(b)); # # <class 'bytes'>
- use codes library encode function code is a third-party library that provides encode and decode functions for string bye conversion.
First, You have to import
into the code.
import codecs
The encode
function in the codecs
library encodes the string into bytes.
codecs.encode(byte_obj, [encoding='utf-8'], [errors='strict'])
encoding and errors are optional parameters
Here is an example
import codecs
bytes = b"hello"
codecs.encode(bytes) #'hello'
Python Convert Byte to String Example
Multiple ways we can parse byte to String in Python
- use the str constructor string convert takes bytes and converted them to a string with a given encoding
str(bytes_string, [encoding], [encoding])
example”
bytes= b 'hello'
s=str(bytes_string, 'utf-8', 'ignore')
print(s) # `hello`
- use the byte decode function
The decode
function takes bytes types and converts into string
Syntax
bytes.decode([encoding],[error])
Optional parameters are encoding and error, if omitted, takes utf-8
as default in 3 versions. Example
b = b"hello"
str = b.decode("utf-8", "ignore")
print(str)# hello
- using codes library decode function
First import the codes name into the python code
import codecs
The decode
function in the codecs
library decodes bytes into a string.
codecs.decode(str_obj, [encoding='utf-8'], [errors='strict'])
encoding
and errors
are optional parameters
Here is an example
import codecs
str = "hello"
codecs.decode(str) # b'hello'
Conclusion
String.encode()
without parameters are preferable compared with other approaches in terms of performance and easy to use in 3 version
bytes.decode()
function is good compared with others in performance