我在博客上发现此代码段为“将二进制数据转换为文字”
Byte[] arrByte = {0,0,0,1,0,1};
string x = Convert.ToBase64String(arrByte);
System: Console.WriteLine(x);
这提供了AAAAAQAB
..
不清楚的是000101
- >被映射到AAAAAQAB
,我是否可以将其用作所有a-z
个字符作为二进制等价物以及如何?还是有其他方法吗?
答案 0 :(得分:5)
实际上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)
有关详细信息,请参阅this Wikipedia article。
答案 1 :(得分:2)
您正在使用的方法ToBase64String
如下。 (from wiki)
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);