gpt4 book ai didi

python - Base 64 字符串和字节数组之间的转换在 C# 和 Python 中有所不同

转载 作者:行者123 更新时间:2023-12-05 06:09:06 25 4
gpt4 key购买 nike

我有一个长度为 16 字节的 C# 字节数组 b_a。当我将 b_a 转换为 base 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。我想念的重点是什么?

最佳答案

如果您有 base 64 编码的信息,则需要对其进行解码以获取字节。在 Python 3(和 Python 2)中:

import base64

aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
b_a = base64.b64decode(aaa)
len(b_a) # 16

鉴于您的代码显然可以正常运行,您必须使用 Python 2。在 Python 3 中对 str 对象使用 bytearray 会引发异常,因为它不会'知道如何在没有字符串编码信息的情况下将字符串转换为字节。但在 Python 2 中,str 对象实际上是底层的字节序列。所以 bytearray 在 Python 2 中只是将 str 作为字节返回:

>>> aaa = 'xKKkTjcKsfBDqpIJBKn6QQ=='
>>> bytearray(aaa)
bytearray(b'xKKkTjcKsfBDqpIJBKn6QQ==')

关于python - Base 64 字符串和字节数组之间的转换在 C# 和 Python 中有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64931578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com