C# 字节数组问题

本文关键字:问题 数组 字节数 字节 | 更新日期: 2023-09-27 17:56:19

我在博客上发现了这个代码片段,作为"将二进制数据转换为文本"

Byte[] arrByte = {0,0,0,1,0,1};
string x = Convert.ToBase64String(arrByte);
System: Console.WriteLine(x);

这提供了AAAAAQAB的输出..

不清楚的是,000101 -> 如何映射到 AAAAAQAB ,我是否可以将其用作二进制等价物的所有a-z字符以及如何使用? 还是有其他方法?

C# 字节数组问题

实际上00000000 00000000 00000000 00000001 00000000 00000001映射到AAAAAQAB,因为base64每个字母使用6位,因此:

000000 = A (0)
000000 = A
000000 = A
000000 = A
000000 = A
010000 = Q  (16)
000000 = A
000001 = B  (1)

有关更多详细信息,请参阅此维基百科文章。

您正在使用的方法如下,ToBase64String。(来自维基)

Base64 是一组类似的编码方案,通过将二进制数据转换为基数 64 表示形式,以 ASCII 字符串格式表示二进制数据。Base64 术语源自特定的 MIME 内容传输编码。

string用作byte[]或其他方式使用Encoding

Encoding.UTF8.GetString(bytes);

所以

72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100

等于

Hello World

到字节和从字节:

var bytes = Encoding.UTF8.GetBytes("Hello world");
var str   = Encoding.UTF8.GetString(bytes);