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
字符以及如何使用? 还是有其他方法?
实际上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);