2017-07-17 63 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"))