最佳答案
这是一个 Python 101类型的问题,但当我试图使用一个似乎可以将字符串输入转换为字节的包时,它让我困惑了一段时间。
正如你将在下面看到的,我为自己找到了答案,但我觉得这是值得记录在这里,因为它花费了我的时间去发掘什么是正在发生的。它似乎是 Python 3的通用程序,所以我没有提到我正在使用的原始包; 它似乎不是一个错误(只是特定的包有一个 .tostring()
方法,显然是 没有生成我所理解的字符串...)
我的测试程序是这样的:
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)
这段代码的输出如下:
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'
因此,需要能够在字节和字符串之间进行转换,以避免最终将非 ascii 字符转换成冗长的文字。