2 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
dGVzdA==是byte[]中的單詞test convert。
不,dGVzdA==
是字節(jié) 0x74、0x65、0x73、0x74 的 base64 編碼表示,而這又是文本“test”的 ASCII 編碼表示。
所以如果你想要一個(gè)內(nèi)容為0x74、0x65、0x73、0x74的字節(jié)數(shù)組,你只需要進(jìn)行base64解碼:
byte[] bytes = Convert.FromBase64String(fileContents);
如果您隨后想通過(guò)應(yīng)用 ASCII 編碼返回字符串,您將使用:
string text = Encoding.GetString(bytes);
但是,如果文件內(nèi)容肯定是 ASCII 文本,那么最好首先避免使用 base64 部分。目前尚不清楚這是從哪里來(lái)的。
從
test
到dGVzdA==
我這樣做Encoding.ASCII.GetBytes("test")
。
不,你不知道。Encoding.ASCII.GetByte("test")
返回一個(gè)包含字節(jié) 0x74、0x65、0x73、0x74 的字節(jié)數(shù)組,而dGVzdA==
是通過(guò) base64 編碼將該字節(jié)數(shù)組轉(zhuǎn)換為字符串的結(jié)果。

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
因?yàn)樗呀?jīng)是一個(gè)string,reader.ReadToEndAsync()將讀取整個(gè)文件直到最后并將它返回到一個(gè)string.
你不需要做Encoding.ASCII.GetString(fileContents);,檢查fileContents后:
using (var reader = new StreamReader(stream))
{
fileContents = await reader.ReadToEndAsync();
// here
}
現(xiàn)在在Convert.FromBase64String(fileContents);那里你會(huì)得到你的字節(jié)而不是從字節(jié)中獲取你的字符串。
- 2 回答
- 0 關(guān)注
- 124 瀏覽
添加回答
舉報(bào)