我有一個方法StreamReader.ReadToEnd()返回一個空字符串
private static String DecompressAndDecode(byte[] data)
{
GZipStream decompressor = new GZipStream(new MemoryStream(data), CompressionMode.Decompress);
StreamReader decompressed = new StreamReader(decompressor, Encoding.UTF8);
String result = decompressed.ReadToEnd();
return result;
}
我有一些GZip壓縮的文本作爲輸入,其結果被認爲是這個文本的字符串表示。問題是該方法返回一個空字符串。令我費解的是,當我在調試模式下跳過該方法併到達返回語句時,結果變量是一個空字符串,但如果我爲解壓縮的.ReadToEnd()表達式創建了一個監視器,它將返回文本。我期望在這一點上是結果變量包含文本和解壓縮.ReadToEnd()表達式評估爲一個空字符串。 (重新評估decompressed.ReadToEnd()表達式會按預期返回一個空字符串)。
@Edit:我發現在我的情況 ReadToEnd的()返回第二呼叫第一呼叫和第二呼叫後返回空字符串文本。
必須有一些明顯的我在這裏失蹤。
編碼實際上是UTF8嗎? – 2010-04-03 23:01:42
是的,它是UTF8。 – axk 2010-04-03 23:05:27