将ascii字符串转换为base64而不使用"b"和引号

Lia*_*iam 4 python base64 python-3.x

我想将ascii字符串(确切地说是文本)转换为base64.所以我知道如何做到这一点,我只使用以下代码:

import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string)
Run Code Online (Sandbox Code Playgroud)

哪能给我

b'c3RyaW5n'
Run Code Online (Sandbox Code Playgroud)

但问题是,我希望它只是打印

c3RyaW5n
Run Code Online (Sandbox Code Playgroud)

是否可以打印不带"b"和"引号"的字符串?谢谢!

Sri*_*man 6

一个简单的.decode("utf-8")会做

import base64
string = base64.b64encode(bytes("string", 'utf-8'))
print (string.decode("utf-8"))
Run Code Online (Sandbox Code Playgroud)


Wil*_*sem 6

b前缀表示,这是一个二进制字符串.二进制字符串不是字符串:它是一个字节序列(0到255范围内的值).它被简单地排版为字符串,使其更紧凑.

但是对于base64,所有字符都是有效的ASCII字符,因此可以简单地解码它:

print(string.decode('ascii'))
Run Code Online (Sandbox Code Playgroud)

所以在这里我们将每个字节解码为其ASCII等价物.由于base64保证它产生的每个字节都在ASCII范围内'A',因此'/'我们将始终生成一个有效的字符串.但请注意,使用任意二进制字符串无法保证这一点.