Last Updated : 11 Jul, 2025
The decode() method in Python is used to convert encoded text back into its original string format. It works as the opposite of encode() method, which converts a string into a specific encoding format. For example, let's try to encode and decode a simple text message:
Python
s = "Geeks for Geeks"
e = s.encode('utf-8')
print("Encoded text:", e)
print(type(e))
d = e.decode('utf-8')
print(type(d))
print("Decoded text:", d)
Encoded text: b'Geeks for Geeks' <class 'bytes'> <class 'str'> Decoded text: Geeks for Geeks
Explanation:
encoded_string.decode(encoding, errors)
Parameters:
1. encoding: The encoding format used for decoding (e.g., 'utf-8', 'ascii').
2. errors (Optional): Specifies how to handle errors during decoding:
Return Type: Returns the original string after decoding.
Working of the Python Decode() MethodThe following flowchart shows the working of Python decoding:
Encoding converts a string into bytes, and decode() brings it back to its original form.
Python
t = "Hello, Python!"
# Encoding the string into UTF-8
e_t = t.encode('utf-8')
print("Encoded:", e_t)
# Decoding back to original
d_t = e_t.decode('utf-8')
print("Decoded:", d_t)
Encoded: b'Hello, Python!' Decoded: Hello, Python!
Explanation:
Sometimes, decoding fails due to incompatible characters. Let's see how different error-handling modes work:
Python
# Encoding with ASCII (supports only basic English characters)
s = "Café"
# Encoding the text in ASCII
enc = s.encode('ascii', errors='replace')
# Decoding with strict mode (raises error)
try:
print(enc.decode('ascii', errors='strict'))
except UnicodeDecodeError as e:
print("Decoding Error:", e)
# Decoding with ignore mode (ignores errors)
print("Ignored Decoding:", enc.decode('ascii', errors='ignore'))
# Decoding with replace mode (replaces errors)
print("Replaced Decoding:", enc.decode('ascii', errors='replace'))
Caf? Ignored Decoding: Caf? Replaced Decoding: Caf?
Explanation:
Encoding and decoding help secure sensitive data like passwords. Here’s a simple demonstration.
Python
import base64
# User credentials
user = "user1"
passw = "secure@123"
# Encoding password
enc_pass = base64.b64encode(passw.encode('utf-8')).decode('utf-8')
print("Encoded Password:", enc_pass)
# Decoding password for verification
dec_pass = base64.b64decode(enc_pass).decode('utf-8')
print("Decoded Password:", dec_pass)
# Login verification
e_pass = "secure@123"
if e_pass == dec_pass:
print("Login Successful!")
else:
print("Wrong Password!")
Encoded Password: c2VjdXJlQDEyMw== Decoded Password: secure@123 Login Successful!
Explanation:
How to use decode in Python 3?
In Python 3, the decode method is used to convert a bytes object into a str (string) object by decoding it from a specific encoding.
Example:
# Define a bytes object
bytes_obj = b'Hello, world!'# Decode bytes object to string using UTF-8 encoding
string_obj = bytes_obj.decode('utf-8')print(string_obj) # Output: Hello, world!
Here, decode('utf-8') converts the bytes object from UTF-8 encoding to a string.
What does .decode('utf-8') do?
The .decode('utf-8') method converts a bytes object into a str object using the UTF-8 encoding. UTF-8 is a variable-width character encoding used for text.
Example:
# Define a bytes object with UTF-8 encoding
bytes_obj = b'\xe2\x9c\x94'# Decode bytes object to string
string_obj = bytes_obj.decode('utf-8')print(string_obj) # Output: ✓
What is string decoding?
String decoding is the process of converting encoded bytes back into a string. It interprets bytes according to a specified character encoding to produce a readable string.
Example:
# Define a bytes object
bytes_obj = b'Hello'# Decode bytes object to string
string_obj = bytes_obj.decode('utf-8')print(string_obj) # Output: Hello
What is an example of decode?
Here’s a basic example of how to use the decode method with a bytes object:
Example:
# Define a bytes object
bytes_data = b'Hello, Python!'# Decode bytes object to string using UTF-8 encoding
text = bytes_data.decode('utf-8')print(text) # Output: Hello, Python!
What is encode() in Python?
The encode() method is used to convert a string into a bytes object using a specific encoding. This is the reverse of decode().
Example:
# Define a string
text = 'Hello, world!'# Encode string to bytes using UTF-8 encoding
bytes_obj = text.encode('utf-8')print(bytes_obj) # Output: b'Hello, world!'
Additional Example of encode():
# Define a string
text = 'Hello, Python!'# Encode string to bytes
bytes_data = text.encode('utf-8')print(bytes_data) # Output: b'Hello, Python!'
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4