Open In App

Python Strings decode() method

Last Updated : 11 Jul, 2025
Comments
Improve
Suggest changes
6 Likes
Like
Report

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)

Output
Encoded text: b'Geeks for Geeks'
<class 'bytes'>
<class 'str'>
Decoded text: Geeks for Geeks

Explanation:

  • s.encode('ut-8') encodes the text into bytes format.
  • e.decode('utf-8') decodes the encoded text back to normal unicode format.

Syntax

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:

  • 'strict' (default): Raises an error for invalid characters.
  • 'ignore': Ignores errors and proceeds.
  • 'replace': Replaces invalid characters with a placeholder.

Return Type: Returns the original string after decoding.

Working of the Python Decode() Method

The following flowchart shows the working of Python decoding:

Decode()

Examples of decode() method:

Example 1: Basic Encoding and 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)

Output
Encoded: b'Hello, Python!'
Decoded: Hello, Python!

Explanation:

  • encode('utf-8') converts the string into bytes format.
  • decode('utf-8') restores the original string.

Example 2: Handling Decoding Errors

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'))

Output
Caf?
Ignored Decoding: Caf?
Replaced Decoding: Caf?

Explanation:

  • strict mode raises an error when an unsupported character (é) is found.
  • ignore mode removes unsupported characters (é).
  • replace mode replaces unsupported characters with a placeholder (?).

Example 3: Real-World Use Case (Password Encoding & Decoding)

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!")

Output
Encoded Password: c2VjdXJlQDEyMw==
Decoded Password: secure@123
Login Successful!

Explanation:

  • The password is encoded in Base64 to ensure safe storage.
  • It is later decoded to verify the login.

Common Use Cases:

  • Helps retrieve the original text from an encoded format.
  • Essential for handling different character encodings like UTF-8, ASCII, etc.
  • Useful in data transmission, security applications, and text processing.

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!'

Explore