2 回答
TA贡献1812条经验 获得超5个赞
dGVzdA==是byte[]中的单词test convert。
不,dGVzdA==
是字节 0x74、0x65、0x73、0x74 的 base64 编码表示,而这又是文本“test”的 ASCII 编码表示。
所以如果你想要一个内容为0x74、0x65、0x73、0x74的字节数组,你只需要进行base64解码:
byte[] bytes = Convert.FromBase64String(fileContents);
如果您随后想通过应用 ASCII 编码返回字符串,您将使用:
string text = Encoding.GetString(bytes);
但是,如果文件内容肯定是 ASCII 文本,那么最好首先避免使用 base64 部分。目前尚不清楚这是从哪里来的。
从
test
到dGVzdA==
我这样做Encoding.ASCII.GetBytes("test")
。
不,你不知道。Encoding.ASCII.GetByte("test")
返回一个包含字节 0x74、0x65、0x73、0x74 的字节数组,而dGVzdA==
是通过 base64 编码将该字节数组转换为字符串的结果。
TA贡献1858条经验 获得超8个赞
因为它已经是一个string,reader.ReadToEndAsync()将读取整个文件直到最后并将它返回到一个string.
你不需要做Encoding.ASCII.GetString(fileContents);,检查fileContents后:
using (var reader = new StreamReader(stream))
{
fileContents = await reader.ReadToEndAsync();
// here
}
现在在Convert.FromBase64String(fileContents);那里你会得到你的字节而不是从字节中获取你的字符串。
- 2 回答
- 0 关注
- 91 浏览
添加回答
举报