string到base64字节,完全使用相同的文字字符

时间:2016-08-30 00:02:13

标签: python string python-3.x base64 literals

今天我遇到了以下问题。我可以用相反的目的更好地解释它:假设我们有以下base64变量,

b64_var = b'aGVsbG8gd29ybGQ='

想象一下,我们想要的不是将它解码为python的字符串对象,即

base64.b64decode(b64_var).decode('utf-8')
>>> 'hello world'

但字符串中的文字等效字符,

repr( b64_var )[1:]
>>> 'aGVsbG8gd29ybGQ='

好的,现在是我的问题。我想构建一个执行相反的功能,

'aGVsbG8gd29ybGQ=' -> b'aGVsbG8gd29ybGQ=' (base64-obj) ???

我被困了,我不知道该怎么做..有什么建议吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

这样做你想要的吗?

b64_var = b'aGVsbG8gd29ybGQ='

print(repr(b64_var))            # b'aGVsbG8gd29ybGQ='
print(repr(b64_var)[1:])        # 'aGVsbG8gd29ybGQ='
print('b' + repr(b64_var)[1:])  # b'aGVsbG8gd29ybGQ='

答案 1 :(得分:0)

好的,我发现了问题,这比我预想的要容易。

首先,我将尝试澄清我真正想做的事情,

str_var = 'aGVsbG8gd29ybGQ='               # str_var: string  
b64_var = fun_str_2_b64samechars(str_var)  # b64_var: bytes (b64)

控制台,

b64_var
>>>b'aGVsbG8gd29ybGQ='

我的目标是猜测如何构建fun_str_2_b64samechars函数。这里恰好是bytes(str_var,'utf-8')

bytes('aGVsbG8gd29ybGQ=','utf-8')
>>>b'aGVsbG8gd29ybGQ='

可能是因为我认为它只是某种base64类,只要我使用了base64模块(由于这个我编辑了标题)。感谢您的帮助,我希望它对某些人有用:)