我有一个长度为16字节的C#字节数组B_A
。当我将b_a
转换为基本64字符串aaa
时,它的长度返回24
string aaa = Convert.ToBase64String(b_a);
Console.WriteLine(aaa.Length); //24
Console.WriteLine(aaa); //'xKKkTjcKsfBDqpIJBKn6QQ=='
我想在Python中将AAA
字符串转换为字节数组。但当我转换它时,它的长度仍然返回24。
aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
b_a = bytearray(aaa)
len(b_a) #24
我想要得到首字母B_a
和All。我错过的重点是什么?
如果你有base 64编码的信息,你需要对它进行解码以获得字节。在Python 3(和Python 2)中:
import base64
aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
b_a = base64.b64decode(msg)
len(b_a) # 16
如果您的代码可以正常工作,那么您使用的一定是Python2。在Python3中对Str
对象使用ByteArray
会引发异常,因为它不知道如何在没有字符串编码信息的情况下将字符串转换为字节。但是在Python2中,str
对象实际上是隐藏在引擎盖下的字节序列。所以ByteArray
在Python2中只是以字节的形式返回字符串:
>>> aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
>>> bytearray(aaa)
bytearray(b'xKKkTjcKsfBDqpIJBKn6QQ==')