我有一个64字符串。我想写的是数组的字节到二进制文件(.dat)
我使用以下代码来做到这一点。请参考。
string s = "do+BmqbI81d3XT85OGtX965DkWqSg0Iqy47VSPNMrkH9TBR9XMg8jn4xI8VCZBxXrI6h17nWAdeRzZicQVHCibIFBiTPA7YM0pvYQwrk3npyxJ8GuFMYbFiIXlrvgg3S7LqCZ1Wy0LPmhc51qMQ2QZDwGDqTV/fdYFVuCoYj3Mw=";
byte[] b = Encoding.UTF8.GetBytes(s);
File.WriteAllBytes(@"D:\\newbin2.dat", b);
但我没有按预期得到结果。二进制文件不应该是人类可读的。我尝试用notepad ++打开,我能够看到相同的文本,尽管我把它写成字节。
哪里出错?
答案 0 :(得分:3)
您正在使用错误的编码将字符串s转换为字节。正如您所提到的,它应该是base64编码的,而不是UTF8。像这样:
byte[] b = Convert.FromBase64String(s);