我有一个方法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