1

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

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

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

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

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

但我没有得到预期的结果。二进制文件不应该是人类可读的。我尝试使用记事本++ 打开,即使我将其写为字节,我也可以看到相同的文本。

哪里出错了?

4

1 回答 1

3

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

byte[] b = Convert.FromBase64String(s);
于 2013-05-23T10:11:11.237 回答