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 關注
- 128 瀏覽
添加回答
舉報