DeflateStream を使用して、Web サーバーからデータを膨らませようとしています。ただし、何らかの理由で、関数が返すバイト配列には、想定されているものではなく、いくつかの null 文字が含まれています。例(スペースはヌル文字を表します)
ge 603-595568599 _web : msg
何が間違っているのかわかりません。ここに私の解凍機能があります:
using (FileStream inFile = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
using (DeflateStream Decompress = new DeflateStream(inFile, CompressionMode.Decompress, true))
{
//Decompress.Flush();
using (StreamReader reader = new StreamReader(Decompress))
{
byte[] temp = Encoding.UTF8.GetBytes(reader.ReadToEnd());
for (int i = 0; i < temp.Length; i++)
{
if (temp[i] < 10) temp[i] = 0x20;
}
r0 = Encoding.UTF8.GetString(temp);
}
}
}
私は何か間違ったことをしていますか?これの原因は何ですか?
ETA: msdn 記事のサンプル コードを使用しても同じ結果が得られます
using (FileStream inFile = new FileStream(filename, FileMode.Open, FileAccess.Read))
{
using (FileStream decompressedFileStream = File.Create("packet.txt"))
{
using (DeflateStream decompressionStream = new DeflateStream(inFile, CompressionMode.Decompress))
{
decompressionStream.CopyTo(decompressedFileStream);
r3=string.Format("Decompressed: {0}", "packet");
}
}
}
ここにサンプルデータがあります
42 58 51 8C 6E 85 51 BC 31 40 04 ED 28 48 2C 06 A8 B8 3C BF 28 C5 AE 5A 2D B1 20 BF D8 3A 1B 42 59 41 28 33 43 33 03 03 13 D3 78 13 23 0B 73 53 CB A4 B4 34 D3 B4 34 03 0B 53 0B 93 B4 A4 34 8B A4 24 E3 14 D3 54 43 73 13 B3 54 23 4B 83 24 D3 E4 34 13 88 AE 5A 1B 7D B8 B1 B8 3D 51 94 5A 9C 5F 5A 94 9C 6A 57 91 99 96 66 A3 0F E7 A2 F8 0E 00 00 00 FF FF