如何读取Xamarin.android中的GZIPInputStream?

如何读取Xamarin.android中的GZIPInputStream?,xamarin,xamarin.android,Xamarin,Xamarin.android,我有一个字节数组byteArray,其中包含用Gzip压缩的数据。我想读取整个阵列,并使用适当的编码(“ISO-8859-15”)对数据进行解码 但是,当我试图用输入流读取器读取gzip输入流时,出现了一个编译器错误,它说无法从Java.Util.Zip.gzip输入流转换到System.IO.stream。但是,这个问题在Java中不会出现。我该怎么做?如何指定要使用的编码?谢谢。您可以使用此方法解压缩GZip,使用GZipStream 这是Xamarin医生。关于 您可以使用Encoding

我有一个字节数组byteArray,其中包含用Gzip压缩的数据。我想读取整个阵列,并使用适当的编码(“ISO-8859-15”)对数据进行解码


但是,当我试图用输入流读取器读取gzip输入流时,出现了一个编译器错误,它说无法从
Java.Util.Zip.gzip输入流
转换到
System.IO.stream
。但是,这个问题在Java中不会出现。我该怎么做?如何指定要使用的编码?谢谢。

您可以使用此方法解压缩GZip,使用
GZipStream

这是Xamarin医生。关于

您可以使用
Encoding.UTF8.GetString()
读取它

您还必须将UTF-8转换为ISO-8859-15(拉丁文9),此示例适用于ISO-8859-1(拉丁文1),但请尝试使用ISO-8859-15

var strISO88591= Encoding.GetEncoding("ISO-8859-1")
                 .GetString(Encoding.Conver‌​t(Encoding.UTF8,Encoding.GetEncoding("ISO-8859-1"), Encoding.UTF8.GetBytes(msg)));
 static byte[] Decompress(byte[] data)
    {
        using (var compressedStream = new MemoryStream(data))
        using (var zipStream = new GZipStream(compressedStream, CompressionMode.Decompress))
        using (var resultStream = new MemoryStream())
        {
            zipStream.CopyTo(resultStream);
            return resultStream.ToArray();
        }
    }
var msg = Encoding.UTF8.GetString(Decompress(personalDataArray));
var strISO88591= Encoding.GetEncoding("ISO-8859-1")
                 .GetString(Encoding.Conver‌​t(Encoding.UTF8,Encoding.GetEncoding("ISO-8859-1"), Encoding.UTF8.GetBytes(msg)));