如何将base 64字符串转换为字节数组而不丢失数据?

时间:2013-05-23 10:04:42

标签: c# .net bytearray binaryfiles

我有一个64字符串。我想写的是数组的字节到二进制文件(.dat)

我使用以下代码来做到这一点。请参考。

string s = "do+BmqbI81d3XT85OGtX965DkWqSg0Iqy47VSPNMrkH9TBR9XMg8jn4xI8VCZBxXrI6h17nWAdeRzZicQVHCibIFBiTPA7YM0pvYQwrk3npyxJ8GuFMYbFiIXlrvgg3S7LqCZ1Wy0LPmhc51qMQ2QZDwGDqTV/fdYFVuCoYj3Mw=";

            byte[] b = Encoding.UTF8.GetBytes(s);

            File.WriteAllBytes(@"D:\\newbin2.dat", b);

但我没有按预期得到结果。二进制文件不应该是人类可读的。我尝试用notepad ++打开,我能够看到相同的文本,尽管我把它写成字节。

哪里出错?

1 个答案:

答案 0 :(得分:3)

您正在使用错误的编码将字符串s转换为字节。正如您所提到的,它应该是base64编码的,而不是UTF8。像这样:

byte[] b = Convert.FromBase64String(s);