将ascii字符串转换为不带“b”和引号的base64
问题描述:
我想将一个ascii字符串(以及精确的文本)转换为base64。 所以我知道该怎么做,我只是用下面的代码:将ascii字符串转换为不带“b”和引号的base64
import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string)
这给了我
b'c3RyaW5n'
但问题是,我想它只是打印
c3RyaW5n
是否可以打印没有“b”和“'引号的字符串? 谢谢!
答
的b
前缀表示,这是一个二进制字符串。一个二进制字符串是而不是一个字符串:它是一个字节序列(0到255范围内的值)。它只是排版为一个字符串,使其更加紧凑。
为Base64的情况下,但是,所有的字符都是有效的ASCII字符,您因而可简单地将其解码喜欢:
print(string.decode('ascii'))
所以在这里,我们将每个字节到其对应的ASCII码进行解码。由于base64保证它产生的每个字节都在ASCII范围'A'
到'/'
),我们将始终生成一个有效的字符串。但请注意,这是而不是保证与一个任意的二进制字符串。
答
一个简单的.decode("utf-8")
会做
import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string.decode("utf-8"))