python - Base 64 字符串和字节数组之间的转换在 C# 和 Python 中有所不同
问题描述
我有一个b_a
16 字节长度的 C# 字节数组。当我转换b_a
为 base 64 字符串aaa
时,它的长度返回 24
string aaa = Convert.ToBase64String(b_a);
Console.WriteLine(aaa.Length); //24
Console.WriteLine(aaa); //'xKKkTjcKsfBDqpIJBKn6QQ=='
我想aaa
在 Python 中将字符串转换为字节数组。但是当我转换它时,它的长度仍然返回 24。
aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
b_a = bytearray(aaa)
len(b_a) #24
我想对b_a
所有人进行初步了解。我想念什么?
解决方案
如果您有 base 64 编码信息,则需要对其进行解码以获取字节。在 Python 3(和 Python 2)中:
import base64
aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
b_a = base64.b64decode(msg)
len(b_a) # 16
鉴于您的代码显然可以正常工作,因此您必须使用 Python 2。在 Python 3 中bytearray
对str
对象使用会引发异常,因为它不知道如何在没有字符串编码信息的情况下将字符串转换为字节。但在 Python 2 中,str
对象实际上是引擎盖下的字节序列。因此bytearray
,只需在 Python 2 中将 str 作为字节返回:
>>> aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
>>> bytearray(aaa)
bytearray(b'xKKkTjcKsfBDqpIJBKn6QQ==')
推荐阅读
- android - 将一些自定义示例数据添加到 TextView
- python - 以所需格式序列化 Django 对象
- python - SQL Alchemy 参数化查询,绑定表名作为参数给出错误
- angular - 如何从当前 url 获取组件名称?
- arrays - Swift - 根据它们的值连接两个元组数组
- javascript - reactjs中如何动态添加、更新和删除表中的行
- javascript - 如何将用户重定向到安全域
- sql-server - SQL 表达式在 Crystal Reports 中返回多行
- python-3.x - cv2.imdecode 错误的颜色(python opencv)
- reactjs - 如何使用