将 ascii 字符串转换为不带 "b" 和引号的 base64
Convert ascii string to base64 without the "b" and quotation marks
我想将 ascii 字符串(准确地说只是文本)转换为 base64。
所以我知道该怎么做,我只使用以下代码:
import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string)
这给了我
b'c3RyaW5n'
但是问题是,我希望它只打印
c3RyaW5n
是否可以打印不带 "b" 和 '' 引号的字符串?
谢谢!
一个简单的.decode("utf-8")
就可以了
import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string.decode("utf-8"))
b
前缀表示它是一个二进制字符串。二进制字符串 不是 字符串:它是一个字节序列(值在 0 到 255 范围内)。只是简单的排版为字符串,使其更加紧凑。
然而,在 base64 的情况下,所有字符都是有效的 ASCII 字符,因此您可以像这样简单地对其进行解码:
print(string.decode('ascii'))
所以在这里我们将每个字节解码为它的 ASCII 等价物。由于 base64 保证它产生的每个字节都在 ASCII 范围 'A'
到 '/'
内)我们将始终产生一个有效的字符串。但是请注意,这是 not 使用任意二进制字符串保证的。
我想将 ascii 字符串(准确地说只是文本)转换为 base64。 所以我知道该怎么做,我只使用以下代码:
import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string)
这给了我
b'c3RyaW5n'
但是问题是,我希望它只打印
c3RyaW5n
是否可以打印不带 "b" 和 '' 引号的字符串? 谢谢!
一个简单的.decode("utf-8")
就可以了
import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string.decode("utf-8"))
b
前缀表示它是一个二进制字符串。二进制字符串 不是 字符串:它是一个字节序列(值在 0 到 255 范围内)。只是简单的排版为字符串,使其更加紧凑。
然而,在 base64 的情况下,所有字符都是有效的 ASCII 字符,因此您可以像这样简单地对其进行解码:
print(string.decode('ascii'))
所以在这里我们将每个字节解码为它的 ASCII 等价物。由于 base64 保证它产生的每个字节都在 ASCII 范围 'A'
到 '/'
内)我们将始终产生一个有效的字符串。但是请注意,这是 not 使用任意二进制字符串保证的。