2017-07-17 66 views
3

我想将一个ascii字符串(以及精确的文本)转换为base64。 所以我知道该怎么做,我只是用下面的代码:将ascii字符串转换为不带“b”和引号的base64

import base64 
string = base64.b64encode(bytes("string", 'utf-8')) 
print (string) 

这给了我

b'c3RyaW5n' 

但问题是,我想它只是打印

c3RyaW5n 

是否可以打印没有“b”和“'引号的字符串? 谢谢!

回答

4

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

为Base64的情况下,但是,所有的字符都是有效的ASCII字符,您因而可简单地将其解码喜欢:

print(string.decode('ascii')) 

所以在这里,我们将每个字节到其对应的ASCII码进行解码。由于base64保证它产生的每个字节都在ASCII范围'A''/'),我们将始终生成一个有效的字符串。但请注意,这是而不是保证与一个任意的二进制字符串。

-1

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

import base64 
string = base64.b64encode(bytes("string", 'utf-8')) 
print (string.decode("utf-8"))