テキスト文字列をbase64にエンコードしようとしています。
私はこれを試しました:
name = "your name"
print('encoding %s in base64 yields = %s\n'%(name,name.encode('base64','strict')))
しかし、これは私に次のエラーを与えます:
LookupError: 'base64' is not a text encoding; use codecs.encode() to handle arbitrary codecs
これを行うにはどうすればよいですか? (Python 3.4)を使用して
Base64をインポートすることを忘れないでください。b64encodeは引数としてバイトを受け取ります。
import base64
base64.b64encode(bytes('your string', 'utf-8'))
1)Python 2:
>>>
>>> 'Some text'.encode('base64')
'U29tZSB0ZXh0\n'
>>>
>>> 'U29tZSB0ZXh0\n'.decode('base64')
'Some text'
>>>
>>> 'U29tZSB0ZXh0'.decode('base64')
'Some text'
>>>
(ただし、これはPython3では機能しません)
2)Python 3では、base64をインポートしてbase64.b64decode( '...')を実行する必要があります-Python 2でも動作します。
これは 独自のモジュール ...を取得するのに十分重要であることが判明しました.
import base64
base64.b64encode(b'your name') # b'eW91ciBuYW1l'
base64.b64encode('your name'.encode('ascii')) # b'eW91ciBuYW1l'
Py2とpy3の両方との互換性
import six
import base64
def b64encode(source):
if six.PY3:
source = source.encode('utf-8')
content = base64.b64encode(source).decode('utf-8')
もちろん、base64
モジュール、バイナリエンコーディング(非標準および非テキストエンコーディングを意味する)にcodecs
モジュール(エラーメッセージで参照)を使用することもできます。
例えば:
import codecs
my_bytes = b"Hello World!"
codecs.encode(my_bytes, "base64")
codecs.encode(my_bytes, "hex")
codecs.encode(my_bytes, "Zip")
codecs.encode(my_bytes, "bz2")
これは、圧縮してjsonシリアル化可能な値を取得するためにそれらをチェーン化できるため、大きなデータに役立ちます。
my_large_bytes = my_bytes * 10000
codecs.decode(
codecs.encode(
codecs.encode(
my_large_bytes,
"Zip"
),
"base64"),
"utf8"
)
参照:
以下のコードを使用してください。
import base64
#Taking input through the terminal.
welcomeInput= raw_input("Enter 1 to convert String to Base64, 2 to convert Base64 to String: ")
if(int(welcomeInput)==1 or int(welcomeInput)==2):
#Code to Convert String to Base 64.
if int(welcomeInput)==1:
inputString= raw_input("Enter the String to be converted to Base64:")
base64Value = base64.b64encode(inputString.encode())
print "Base64 Value = " + base64Value
#Code to Convert Base 64 to String.
Elif int(welcomeInput)==2:
inputString= raw_input("Enter the Base64 value to be converted to String:")
stringValue = base64.b64decode(inputString).decode('utf-8')
print "Base64 Value = " + stringValue
else:
print "Please enter a valid value."