Как конвертировать между байтами и строками в 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.