unity 正确解压中文Zip文件

在Unity中对含有中文的Zip压缩文件解压真的是挺坑的一件事情。普通C#工程,只要目标框架在.NET Framework 4.5(含)以上版本,只要一行代码就能搞定的事:

ZipFile.ExtractToDirectory("zip目录", "解压目录");

unity老旧的3.5让它变得难搞,因为没了c#自带解压zip功能,只好转而求助第三方库,ICSharpCode.SharpZipLib.dll就是个用来解压zip文件的库,但是你用了就会发现一般的用法确实能够解压,但是中文部分全都乱码了。解决这个问题,网上有很多改法,但是我试了好多,有些直接就不管用,有些没说使用的dll版本号,下载下来后发现压根就没有要修改的相关属性,还有些改法,用是能用,能解压出来,也不乱码了,但是每个中文文件结果都莫名的加了好多无用的字节,导致还是不能使用,好烦。

话不多少,我直接贴上代码和dll下载地址,能正常解压,不乱码,也没结尾多加无用字节。

        public abstract class UnzipCallback
        {
            /// <summary>
            /// 解压单个文件或文件夹前执行的回调
            /// </summary>
            /// <param name="_entry"></param>
            /// <returns>如果返回true,则压缩文件或文件夹,反之则不压缩文件或文件夹</returns>
            public virtual bool OnPreUnzip(ZipEntry _entry)
            {
                return true;
            }

            /// <summary>
            /// 解压单个文件或文件夹后执行的回调
            /// </summary>
            /// <param name="_entry"></param>
            public virtual void OnPostUnzip(ZipEntry _entry) { }

            /// <summary>
            /// 解压执行完毕后的回调
            /// </summary>
            /// <param name="_result">true表示解压成功,false表示解压失败</param>
            public virtua
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值