考虑以下代码。。。你知道吗
base64EncodedCredentials = base64.b64encode(b"johndoe:mysecret")
print(base64EncodedCredentials)
我得到的回应是
b'am9obmRvZTpteXNlY3JldA=='
为什么在弦前有个b?如何仅获取字符串值'am9obmRvZTpteXNlY3JldA=='?你知道吗
从技术上讲,这个问题可以被认为是另一个问题的重复,如果你知道这个问题是关于字节字符串和字符串的。在我的例子中,我问这个问题是因为我不知道有什么叫做字节字符串。对于新的Python程序员来说,这个问题可能是有益的,因为它使用他们在程序或调试器上看到的语言。如果他们不知道字节字符串是什么,那么这个问题可能很有用,可以将他们的问题转化为更流利的Python程序员使用的技术术语。这个问题在词汇的使用上有所不同。你知道吗
请参阅this post以摆脱编码。你知道吗
print(base64EncodedCredentials.decode("utf-8"))
它正在返回一个bytes对象。通常base64用于确保7位安全,因此通常与面向字节(而不是面向字符)的数据一起使用,例如,将套接字挤出。你知道吗
您可以将其解码为字符串,就像任何其他字节对象一样:
字节和字符串对象使用
encode()
和decode()
在彼此之间更改。使用ascii
编解码器是安全的,因为base64保证只返回7位ascii。你知道吗相关问题 更多 >
编程相关推荐