2017-07-17 12 views
3

Ich wollte eine ASCII-Zeichenfolge (genau Text, um genau zu sein) in Richtung Base64 konvertieren. Ich weiß also, wie das zu tun, verwende ich nur den folgenden Code:Konvertieren ASCII-Zeichenfolge in Base64 ohne die "B" und Anführungszeichen

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

Was mir

b'c3RyaW5n' 

gibt jedoch das Problem ist, würde ich es mag nur

drucken zu
c3RyaW5n 

Ist es möglich, die Zeichenfolge ohne die "B" und die "Anführungszeichen" zu drucken? Danke!

Antwort

4

Der b Präfix zeigt an, dass es sich um ein Binärstring ist. Eine binäre Zeichenfolge ist nicht eine Zeichenfolge: Es ist eine Sequenz von Bytes (Werte im Bereich von 0 bis 255). Es wird einfach als String gesetzt, um es kompakter zu machen.

Bei base64 jedoch alle Zeichen gültig ASCII-Zeichen sind, können Sie so einfach entschlüsseln mag:

print(string.decode('ascii')) 

Also hier werden wir jedes Byte auf seine ASCII-Äquivalent dekodieren. Da base64 garantiert, dass jedes erzeugte Byte im ASCII-Bereich 'A' bis '/' liegt, erzeugen wir immer einen gültigen String. Beachten Sie jedoch, dass dies nicht garantiert mit einer beliebigen binären Zeichenfolge ist.

-1

Ein einfachen .decode("utf-8") täten

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