`
october731
  • 浏览: 86690 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

c#对字符串压缩和解压缩均能成功

阅读更多
public static class GZipTest
    {
        public static string CompressString2String(string str)
        {
            string compressString = "";
            byte[] compressBeforeByte = Encoding.Default.GetBytes(str);
            byte[] compressAfterByte = Compress(compressBeforeByte);
            compressString = Encoding.Default.GetString(compressAfterByte);
            return compressString;
        }

        public static string DecompressString2String(string str)
        {
            string compressString = "";
            byte[] compressBeforeByte = Encoding.Default.GetBytes(str);
            byte[] compressAfterByte = Decompress(compressBeforeByte);
            compressString = Encoding.Default.GetString(compressAfterByte);
            return compressString;
        }


        public static byte[] Compress(byte[] data)
        {
            MemoryStream ms = new MemoryStream();
            GZipStream zip = new GZipStream(ms, CompressionMode.Compress, true);
            zip.Write(data, 0, data.Length);
            zip.Close();
            byte[] buffer = new byte[ms.Length];
            ms.Position = 0;
            ms.Read(buffer, 0, buffer.Length);
            ms.Close();
            return buffer;
        }
        public static byte[] Decompress(byte[] data)
        {
            MemoryStream ms = new MemoryStream(data);
            GZipStream zip = new GZipStream(ms, CompressionMode.Decompress, true);
            MemoryStream msreader = new MemoryStream();
            byte[] buffer = new byte[0x1000];
            while (true)
            {
                int reader = zip.Read(buffer, 0, buffer.Length);
                if (reader <= 0)
                {
                    break;
                }
                msreader.Write(buffer, 0, reader);
            }
            zip.Close();
            ms.Close();
            msreader.Position = 0;
            buffer = msreader.ToArray();
            msreader.Close();
            return buffer;
        }
    }

总结一下自己之前所有的都不能还原的原因:只要是采用default,也就是ansi就一定是可以在程序上执行还原的(程序不会出异常,但是中文字符意料之中的实际上不能还原)。编码只要一改成其他的就立马不行。
分享到:
评论

相关推荐

    C#自定义字符串压缩和解压缩的方法

    本文将介绍如何自定义一个简单的字符串压缩和解压缩的方法,使用.NET框架内置的`System.IO.Compression.GZipStream`类。 首先,让我们分析`ZipLib`类中的`Zip`方法。这个方法接收一个字符串`value`作为输入,其目的...

    C#中ICSharpCode.SharpZipLib字符串压缩

    在.NET开发环境中,C#语言提供了丰富的库来处理各种任务,包括文件压缩和解压缩。在本场景中,我们关注的是使用开源库ICSharpCode.SharpZipLib进行字符串的压缩和解压缩。ICSharpCode.SharpZipLib,简称SharpZipLib...

    字符串压缩与解压

    以下是如何使用SharpCompress进行字符串压缩和解压缩的示例: ```csharp using SharpCompress.Writer.GZip; using SharpCompress.Reader.GZip; public static string CompressWithSharpCompress(string text) ...

    C#字符压缩性能对比--源代码

    在C#中,使用GZipStream可以轻松地对字符数据进行压缩和解压缩。其性能相对稳定,但在某些数据集上可能不如其他算法。 2. **DeflateStream**:直接使用Deflate算法,它是Zlib库的一部分,也是GZip的基础。由于不...

    C# 压缩文件与字符串.rar_.net

    总结来说,C#通过`.NET`框架提供了强大的文件压缩和解压缩功能,使得开发者能够轻松地处理ZIP文件,以及对字符串进行压缩和解压缩操作。无论是为了存储、传输还是备份数据,这些功能都极大地提高了开发效率和数据...

    pako gzip 压缩和解压缩(支持中文)

    在本项目中,我们将关注如何使用pako库进行gzip压缩和解压缩,并解决在处理中英文内容时可能出现的乱码问题。 首先,让我们详细了解pako库。pako是基于zlib库的一个轻量级实现,它在浏览器和Node.js环境中都能运行...

    C#实现压缩和解压缩的方法示例【Gzip和Zip方式】

    GzipUtil 类提供了压缩和解压缩的方法,使用 GZipStream 将字符串压缩成 byte 数组,解压缩时使用 GZipStream 将 byte 数组解压缩成字符串。 三、Zip 压缩和解压缩 Zip 是一种常用的压缩格式,C# 中可以使用 ...

    C#文件流进行压缩和解压缩的方法

    使用.NET Framework中的***pression命名空间提供的类,可以轻松实现对文件流的压缩和解压缩操作。 首先,***pression包含两个主要的类:GZipStream和DeflateStream。这两个类都实现了IDisposable接口,用于执行压缩...

    C#教程 实现RLE压缩算法 C#简单源代码.zip

    在C#中实现RLE,我们需要两个主要步骤:压缩和解压缩。以下是对这两个步骤的详细说明: 1. **压缩过程**: - 读取输入数据,这可能是来自控制台的用户输入或者一个文件。 - 使用`StringBuilder`类构建一个新的...

    字符串的哈夫曼编码

    - 在C#窗体应用中,可以设计用户界面,包含输入字符串的文本框、显示哈夫曼编码的文本框、压缩和解压缩按钮等元素。按钮的点击事件处理函数中调用上述步骤来完成操作。 6. **文件读写与保存**: - 压缩后的字符串...

    C#序列化与压缩操作示例

    此外,还可以利用第三方库如SharpZipLib,它提供了更广泛的压缩和解压缩功能,包括ZIP、GZIP、BZIP2等格式。 在“serDemo”项目中,很可能是实现了一些基本的序列化示例,可能包括XML、二进制或JSON格式的序列化与...

    C#调用Winrar实现压缩与解压缩

    在IT行业中,有时候我们需要在应用程序中集成压缩和解压缩功能,C#作为一种广泛使用的编程语言,可以调用外部工具如WinRAR来实现这一目标。本文将深入探讨如何在C#中利用WinRAR API来完成文件的压缩和解压缩操作。 ...

    C#实现GZip压缩和解压缩入门实例

    GZipStream是.NET Framework提供的一个类,它允许我们轻松地对数据进行压缩和解压缩。本文将详细介绍如何使用C#中的GZipStream进行数据的压缩和解压缩,并解答初学者可能遇到的疑惑。 首先,GZipStream是一个继承自...

    前端pako压缩与解压缩

    在前端开发中,数据压缩和解压缩是一种常见的优化技术,特别是在处理大量数据传输或存储时。"前端pako压缩与解压缩"这个主题主要关注如何在JavaScript环境下利用pako库来实现这一功能。Pako是一个高效的,开源的Gzip...

    源代码 C#实现的zip压缩算法

    在IT行业中,C#是一种广泛使用的...掌握这些技术,开发者可以在C#项目中方便地实现文件的压缩和解压缩操作,提高数据处理效率。在实际开发中,根据项目需求选择适合的方法或类库,可以极大地提升开发效率和代码质量。

    c#反混淆工具de4dot 一般混淆都可以解决

    de4dot是一款由C#编写并遵循GPLv3许可的开源.NET解混淆器和解压缩器。它的主要功能是处理那些经过混淆处理的.NET程序集,尝试将它们还原至接近原始状态,以便于开发者能够更轻松地阅读和理解代码。de4dot由Jozef ...

    zlib_dll.new.rar

    描述中提到的需求是使用C#对字符串进行压缩和解压缩。在C#中,`zlib.net`是一个第三方库,它是`zlib`库的一个.NET实现,提供了一套与.NET Framework兼容的接口。通过这个库,开发者可以方便地在C#代码中使用`zlib`的...

    C#压缩文件,值得拥有

    通过这个类,我们可以轻松地对文件或文件夹进行压缩和解压缩操作。然而,对于CSS和JavaScript文件的压缩,我们通常需要更具体的处理方式,例如去除空白、注释和换行符,这需要额外的库来完成。 一个常用的第三方库...

    c#调用winrar解压缩文件代码分享

    C#代码调用WinRAR进行文件解压缩是在Windows平台下使用C#编程语言实现压缩和解压缩文件的常用技术。这种方法依赖于Windows操作系统的注册表信息以及外部程序WinRAR。以下是详细的知识点: 1. 使用外部工具进行操作...

Global site tag (gtag.js) - Google Analytics