How to convert 'binary string' to normal string in Python3?
In Python 3, bytes (e.g., b'Hello') and str (e.g., 'Hello') are separate types. When you say “binary string,” you’re likely referring to a bytes object. To convert it into a normal string (a Python 3 str), you just need to decode the bytes using the correct character encoding.
Below is a simple example:
# Suppose you have a bytes object binary_str = b'Hello, world!' # Convert (decode) the bytes object to a str normal_str = binary_str.decode('utf-8') print(normal_str) # Output: Hello, world! print(type(normal_str)) # Output: <class 'str'>
-
Identify Encoding:
- UTF-8 is the most commonly used encoding on the web.
- If you know the data is in another encoding (e.g., ASCII, Latin-1), specify it accordingly, like
binary_str.decode('ascii').
-
Handling Errors:
- When decoding a bytes object that may have invalid sequences, you can specify an error-handling strategy:
This replaces invalid characters with a question mark.normal_str = binary_str.decode('utf-8', errors='replace')
- When decoding a bytes object that may have invalid sequences, you can specify an error-handling strategy:
-
Encoding vs. Decoding:
- Encoding:
str→bytesvia.encode('utf-8') - Decoding:
bytes→strvia.decode('utf-8')
- Encoding:
Example in Context
# Let's say you fetched bytes data from a file or network stream response_bytes = b'Example data:\xc2\xa9 2025' # Decode it to a human-readable str response_str = response_bytes.decode('utf-8') print(response_str) # Output: Example data:© 2025
By decoding the bytes (b'...'), you end up with a normal Python 3 string that can be printed or processed further.
Level Up Your Python Skills
If you’re looking to get a deeper understanding of Python (including how to handle files, encodings, and more advanced topics), here are some recommended resources from DesignGurus.io:
-
Grokking Python Fundamentals
A comprehensive course that covers Python basics to advanced features, ensuring you understand the distinctions betweenbytesandstr, best practices for I/O, and much more. -
Grokking the Coding Interview: Patterns for Coding Questions
Perfect if you’re preparing for technical interviews and need to sharpen your problem-solving skills using Python.
For developers aiming to build scalable, robust applications—or preparing for system design interviews at major tech companies—consider:
- Grokking System Design Fundamentals
This course focuses on the core concepts of distributed systems and high-level software architecture, critical skills for senior engineering roles.
Key Takeaway: To convert a “binary string” (i.e., a Python 3 bytes object) to a normal string (str), call .decode('utf-8') (or the appropriate encoding). This straightforward conversion is essential for working safely with text data in Python 3. Happy coding!