如何读取Xamarin.android中的GZIPInputStream?
我有一个字节数组byteArray,其中包含用Gzip压缩的数据。我想读取整个阵列,并使用适当的编码(“ISO-8859-15”)对数据进行解码如何读取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
但是,当我试图用输入流读取器读取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.Convert(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.Convert(Encoding.UTF8,Encoding.GetEncoding("ISO-8859-1"), Encoding.UTF8.GetBytes(msg)));