suk*_*vir 37 python base64 encoding python-3.x
我正在尝试将文本字符串编码为base64.
我试过这样做:
name = "your name"
print('encoding %s in base64 yields = %s\n'%(name,name.encode('base64','strict')))
Run Code Online (Sandbox Code Playgroud)
但这给了我以下错误:
LookupError: 'base64' is not a text encoding; use codecs.encode() to handle arbitrary codecs
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?(使用Python 3.4)
Ale*_*kov 67
记得导入base64,b64encode将字节作为参数.
import base64
base64.b64encode(bytes('your string', 'utf-8'))
Run Code Online (Sandbox Code Playgroud)
Tag*_*gar 14
1)这在Python 2中没有导入的情况下工作:
>>>
>>> 'Some text'.encode('base64')
'U29tZSB0ZXh0\n'
>>>
>>> 'U29tZSB0ZXh0\n'.decode('base64')
'Some text'
>>>
>>> 'U29tZSB0ZXh0'.decode('base64')
'Some text'
>>>
Run Code Online (Sandbox Code Playgroud)
(虽然这在Python3中不起作用)
2)在Python 3中你必须导入base64并执行base64.b64decode('...') - 也可以在Python 2中工作.
mgi*_*son 12
事实证明,这对于获得自己的模块非常重要......
import base64
base64.b64encode(b'your name') # b'eW91ciBuYW1l'
base64.b64encode('your name'.encode('ascii')) # b'eW91ciBuYW1l'
Run Code Online (Sandbox Code Playgroud)
对于py3、base64encode和decode字符串:
import base64
def b64e(s):
return base64.b64encode(s.encode()).decode()
def b64d(s):
return base64.b64decode(s).decode()
Run Code Online (Sandbox Code Playgroud)
小智 5
看来即使在调用编码字符串之后,也必须调用该函数decode()才能使用实际的字符串数据。因为永远不要忘记,它总是返回字节文字。base64.b64decodebase64
import base64
conv_bytes = bytes('your string', 'utf-8')
print(conv_bytes) # b'your string'
encoded_str = base64.b64encode(conv_bytes)
print(encoded_str) # b'eW91ciBzdHJpbmc='
print(base64.b64decode(encoded_str)) # b'your string'
print(base64.b64decode(encoded_str).decode()) # your string
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77425 次 |
| 最近记录: |