Đây là một câu hỏi loại Python 101, nhưng nó đã cho tôi bối rối một lúc khi tôi cố gắng sử dụng một gói mà dường như chuyển đổi đầu vào chuỗi của tôi thành byte.Làm thế nào để chuyển đổi giữa các byte và chuỗi trong Python 3?
Như bạn sẽ thấy dưới đây tôi đã tìm thấy câu trả lời cho bản thân mình, nhưng tôi cảm thấy nó đáng ghi lại ở đây vì đã mất thời gian để khai quật những gì đang diễn ra. Nó có vẻ là chung chung với Python 3, vì vậy tôi đã không đề cập đến gói ban đầu tôi đã chơi với; nó dường như không có một lỗi (chỉ là gói đặc biệt đã có một phương pháp .tostring()
đó là rõ ràng không sản xuất những gì tôi hiểu như là một chuỗi ...)
chương trình thử nghiệm của tôi đi như thế này:
import mangler # spoof package
stringThing = """
<Doc>
<Greeting>Hello World</Greeting>
<Greeting>你好</Greeting>
</Doc>
"""
# 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)
sản lượng từ mã này cho phép này:
This is the string input:
<Doc>
<Greeting>Hello World</Greeting>
<Greeting>你好</Greeting>
</Doc>
This is the bytes output:
b'\n<Doc>\n <Greeting>Hello World</Greeting>\n <Greeting>\xe4\xbd\xa0\xe5\xa5\xbd</Greeting>\n</Doc>\n'
Vì vậy, có một nhu cầu để có thể chuyển đổi giữa byte và chuỗi, để tránh kết thúc với ký tự khác aSCII được biến thành gobbledegook.
[Câu hỏi này] (http://stackoverflow.com/questions/7585435/best-way-to-convert-string-to-bytes-in-python-3) đưa ra nhiều chi tiết hơn trong câu trả lời, nhưng tôi nghĩ câu trả lời nhanh hơn sẽ rõ ràng hơn. – Bobble