# Convert a String to Bytes in Python with encode()

> Use the str.encode() method or the bytes() constructor to convert a Python string into a bytes object, with UTF-8 as the default character encoding

**URL:** https://sentry.io/answers/convert-a-string-to-bytes-in-python/

---

## The Problem

How do I convert a string to bytes in Python 3?

## The Solution

We can do this using [`str.encode`](https://docs.python.org/3/library/stdtypes.html#str.encode):

```python
my_string = "A string to turn into bytes."
print(type(my_string))  # will print "<class 'str'>"

my_bytes = my_string.encode()
print(type(my_bytes))  # will print "<class 'bytes'>"
```

UTF-8 is the default encoding and will be used if we do not specify [a different one](https://docs.python.org/3/library/codecs.html#standard-encodings).

An alternative way to do this would be to cast our string to the `bytes` type using its constructor. This uses `str.encode` under the hood and produces the same result:

```python
my_string = "A string to turn into bytes."
print(type(my_string))  # will print "<class 'str'>"

my_bytes = bytes(my_string, "utf-8")
print(type(my_bytes))  # will print "<class 'bytes'>"
```

The first method can be considered superior, as it is more direct and allows us to leave out the encoding if we're using UTF-8.

---

*Source: [sentry.io/answers/convert-a-string-to-bytes-in-python/](https://sentry.io/answers/convert-a-string-to-bytes-in-python/)*
