Ho un metodoStreamReader.ReadToEnd() restituendo una stringa vuota
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;
}
ho un testo GZipped come input e il risultato dovrebbe essere una rappresentazione stringa di testo. Il problema è che il metodo restituisce una stringa vuota. Quello che mi è sconcertante è che quando faccio un passo Trough il metodo in modalità debug e raggiungere l'istruzione return la variabile risultato è una stringa vuota, ma se creo un orologio per l'espressione decompressed.ReadToEnd() mi restituisce il testo. Quello che mi aspetterei a questo punto è la variabile result per contenere il testo e l'espressione decompressed.ReadToEnd() che valuta una stringa vuota. (Rivalutare l'espressione decompressed.ReadToEnd() restituisce una stringa vuota come previsto).
@EDIT: Ho scoperto che nel mio caso ReadToEnd() restituisce il testo sulla seconda chiamata ritorno stringhe vuote in prima convocazione e, dopo la seconda chiamata.
Ci deve essere qualcosa di ovvio che mi manca qui.
è la codifica in realtà UTF8? –
Sì, è UTF8. – axk