Как конвертировать между байтами и строками в Python 3?

Это вопрос типа Python 101, но он некоторое время меня сбивал с толку, когда я пытался использовать пакет, который, казалось, преобразовывал мой строковый ввод в байты.

Как вы увидите ниже, я нашел ответ для себя, но чувствовал, что здесь стоит записать, потому что мне потребовалось время, чтобы разобраться в происходящем. Похоже, что он является общим для Python 3, поэтому я не ссылался на оригинальный пакет, с которым играл. это не кажется ошибкой (только что конкретный пакет имел.tostring() метод, который был явноне производя то, что я понял как строку ...)

Моя тестовая программа выглядит так:

import mangler                                 # spoof package

stringThing = """

    Hello World
    你好

"""

# print out the input
print('This is the string input:')
print(stringThing)

# now make the string into bytes
bytesThing = mangler.tostring(stringThing)    # pseudo-code again

# now print it out
print('\nThis is the bytes output:')
print(bytesThing)

Выход из этого кода дает это:

This is the string input:


    Hello World
    你好



This is the bytes output:
b'\n\n    Hello World\n    \xe4\xbd\xa0\xe5\xa5\xbd\n\n'

Таким образом, необходимо иметь возможность преобразовывать байты в строки, чтобы избежать попадания символов, не являющихся ascii, в gobbledegook.

Ответы на вопрос(4)

Ваш ответ на вопрос