在使用 SharpZipLib 生成多文件的zip压缩时,对于中文文件名,压缩包里对应的文件名是乱码。
网友们的解决办法有的修改SharpZipLib源码
,有的设定 IsUnicodeText 值
。第一种方法应该能解决问题,但略嫌麻烦。第二种方法却不能解决问题。
查看源码和帮助,SharpZipLib 提供了一个静态方法 DefaultCodePage 可以改变它的默认的字符编码方式。
下面是它的帮助文件对于 DefaultCodePage 的说明:
Default encoding used for string conversion. 0 gives the
default system OEM code page. Dont use unicode encodings if you want to be Zip
compatible! Using the default code page isnt the full solution neccessarily
there are many variable factors, codepage 850 is often a good choice for
European users, however be careful about compatability.
所以,我们在进行文件压缩操作前,先做下面的修改:
// 出现乱码就是因为CodePage不对
Encoding gbk = Encoding.GetEncoding("gbk");
ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = gbk.CodePage;
中文文件名的文件压缩生成的 zip 文件时正常的。
使用的 SharpZipLib
的版本是 0.86 版的。
参考文章:
Japanese Characters in Folder Names
分享到:
相关推荐
总结,ICSharpCode.SharpZipLib通过设置正确的编码参数,可以有效地解决在处理中文文件名时出现的乱码问题。在创建和解压缩ZIP文件时,应特别注意文件名和内容的编码设置,以确保数据的完整性和正确性。
C#利用SharpZipLib进行压缩和解压 C#中的压缩和解压是非常常见的操作, SharpZipLib是一个流行的压缩库,它提供了压缩和解压的功能。在本文中,我们将使用SharpZipLib库来实现文件的压缩和解压。 SharpZipLib简介...
总结起来,SharpZipLib为.NET开发者提供了一套完整的压缩解决方案。通过使用这个库,你可以轻松地实现文件和文件夹的压缩,提高应用程序的功能性和效率。无论你是新手还是经验丰富的开发者,掌握如何使用SharpZipLib...
在C#编程环境中,SharpZipLib是一个非常流行的开源库,用于处理ZIP和其他类型的压缩文件。这个库提供了丰富的API,使得开发者能够轻松地实现文件或目录的压缩与解压缩功能。在"标题"中提到的"C# SharpZipLib 压缩...
本篇文章将深入探讨如何在C#中利用SharpZipLib库进行文件的压缩和解压缩,以及相关的源码调用方法。 首先,确保已经正确地将SharpZipLib库引入到项目中。可以通过NuGet包管理器安装,搜索"SharpZipLib"并添加到项目...
修改两处源码,解决压缩后中文名乱码问题,经过项目测试,请放心使用
ICSharpCode.SharpZipLib.dll 是一个开源的C#库,专用于处理压缩和解压缩文件,包括ZIP、GZip、Tar、BZip2等多种格式。这个库在.NET环境中提供了强大的文件压缩功能,使得开发者无需依赖系统自带的API或者第三方商业...
在.NET开发环境中,C#语言提供了丰富的库来处理各种任务,包括文件压缩和解压缩。在本场景中,我们关注的是使用开源库ICSharpCode.SharpZipLib进行字符串的压缩和解压缩。ICSharpCode.SharpZipLib,简称SharpZipLib...
SharpZipLib是一款开源的.NET库,它为C#和.NET开发者提供了强大的文件压缩和解压缩功能,支持ZIP、GZip、Tar和BZip2等多种格式。这个实例代码着重讲解如何在C#.NET环境下使用SharpZipLib来处理压缩文件。 首先,...
在.NET框架中,C#程序员通常使用各种库来处理压缩任务,其中SharpZipLib是一个流行的开源库,专门用于实现ZIP、GZip、BZip2等压缩格式。这个库提供了丰富的API,使得C#开发者能够方便地对文件和数据进行压缩与解压缩...
在.NET框架中,C#提供了内置的压缩和解压缩功能,主要通过`System.IO.Compression`命名空间下的类来实现。这个命名空间包含了多种压缩算法,如GZip和Deflate,可以有效地处理大文件,即使文件大小超过2GB。本文将...
其中,ICSharpCode.SharpZipLib是一个流行的开源库,它允许开发者在C#项目中实现ZIP、GZip、BZip2、Tar和7-Zip等格式的压缩和解压缩功能。本篇将详细讲解如何利用ICSharpCode.SharpZipLib库进行文件的压缩与解压缩...
总的来说,【控件类库】C#的SharpZipLib压缩类是.NET开发者在处理压缩任务时的强大工具,无论是在ASP.NET Web应用程序还是桌面应用程序中,都能够提供高效、灵活的解决方案。通过深入学习和实践,开发者可以充分利用...
《SharpZipLib:高效便捷的.NET压缩库》 SharpZipLib,简称IZip,是一款开源的.NET类库,专门用于处理ZIP、GZip、BZip2、Tar和7-Zip等压缩格式。作为标题提到的核心组件,SharpZipLib.dll是这个库的动态链接库文件...
本文主要主要介绍了利用ICSharpCode.SharpZipLib第三方的DLL库实现在线压缩和解压缩的功能,并做了相关的代码演示。
在Java编程中,`ZipInputStream`是用于读取和解压ZIP格式的压缩文件的核心类。然而,正如标题和描述中指出的,当ZIP文件包含带有中文文件名的条目时,使用`ZipInputStream`进行解压可能会遇到问题。这个问题通常表现...
SharpZipLib是一款开源的.NET库,它为C#和.NET Framework提供了广泛的压缩和解压缩功能,包括对ZIP、GZip、Tar、BZip2和7-Zip格式的支持。这个库非常实用,尤其对于那些需要在.NET环境中处理压缩文件的开发者来说。...
只列举一个压缩帮助类,使用的是有要添加一个dll引用ICSharpCode.SharpZipLib.dll。另外说明一下的是,这个类压缩格式是ZIP的,所以文件的后缀写成 .zip。还有, 如果用这个类来解压rar格式的压缩文件时会报错,就...
总结来说,`C# Datatable压缩成ZIP文件`的技术点主要包括`DataTable`对象的使用,XML的生成与写入,以及ZIP压缩的实现。通过这些技术,我们可以有效地处理和交换大量结构化数据,特别是在离线或非联网环境中,提高了...
其中,ICSharpCode.SharpZipLib是一个流行的开源库,它为C#开发者提供了广泛的压缩和解压缩功能,包括对ZIP文件的支持。本文将深入探讨如何使用ICSharpCode.SharpZipLib.dll类库资源来在C# WinForm应用程序中实现...