У меня есть служба WCF, используемая клиентом Silverlight. В службе я создаю строку (которая представляет файл .csv
) и сжимаю ее. Когда я пытаюсь распаковать его на клиенте, я получаю следующее исключение:
System.ArgumentException: «iso-8859-1» не является поддерживаемым именем кодировки.
Имя параметра: name
в System.Globalization.EncodingTable.internalGetCodePageFromName(имя строки)
в System.Globalization.EncodingTable. GetCodePageFromName(имя строки)
в System.Text.Encoding.GetEncoding(имя строки)
в Ionic.Zlib.GZipStream..cctor()}
Мне не удалось найти никакой информации о том, что вызывает это и как этого избежать. Буду благодарен за любую помощь!
Используемый код следующий:
Услуга:
private static byte[] Zip(string str)
{
var bytes = Encoding.UTF8.GetBytes(str);
using (var msInput = new MemoryStream(bytes))
using (var msOutput = new MemoryStream())
{
using (var gs = new GZipStream(msOutput, CompressionMode.Compress))
{
msInput.CopyTo(gs);
}
return msOutput.ToArray();
}
}
Сильверлайт клиент:
private void UnzipToTheExportStream(byte[] bytes)
{
using (var msi = new MemoryStream(bytes))
using (_exportStream)
{
using (var gs = new GZipStream(msi, CompressionMode.Decompress))
{
gs.CopyTo(_exportStream);
}
}
}
Исключение происходит при инициализации файла GZipStream
. Для распаковки я использую DotNetZip (Ionic.Zlib
). Для сжатия я пробовал и DotNetZip, и System.IO.Compression
(который недоступен в Silverlight), но с тем же результатом.