[bug]使用SharpZipLib遇到中文名称乱码问题
2016-01-20 18:03
197 查看
写在前面
业务逻辑是这样的,需要导出一个app的话题,并需要把该话题下帖子的附件导出,然后需求想修改成人员的名称.jpg的格式。所以就出现了中文乱码的问题。在本地没问题,但发布到服务器上面就出问题,每次打包下载下面的只有英文名称的文件,没有中文的。工具类
public class ZipHelper { public static void ZipFile(string strFile, string strZip) { if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar) strFile += Path.DirectorySeparatorChar; ZipOutputStream s = new ZipOutputStream(File.Create(strZip)); s.SetLevel(6); zip(strFile, s, strFile); s.Finish(); s.Close(); } private static void zip(string strFile, ZipOutputStream s, string staticFile) { if (strFile[strFile.Length - 1] != Path.DirectorySeparatorChar) strFile += Path.DirectorySeparatorChar; Crc32 crc = new Crc32(); string[] filenames = Directory.GetFileSystemEntries(strFile); foreach (string file in filenames) { if (Directory.Exists(file)) { zip(file, s, staticFile); } else // 否则直接压缩文件 { //打开压缩文件 FileStream fs = File.OpenRead(file); byte[] buffer = new byte[fs.Length]; fs.Read(buffer, 0, buffer.Length); string tempfile = file.Substring(staticFile.LastIndexOf("\\") + 1); ZipEntry entry = new ZipEntry(tempfile); //设置wei unicode编码 entry.IsUnicodeText = true; entry.DateTime = DateTime.Now; entry.Size = fs.Length; fs.Close(); crc.Reset(); crc.Update(buffer); entry.Crc = crc.Value; s.PutNextEntry(entry); s.Write(buffer, 0, buffer.Length); } } } }
该类是从网上拷贝过来的,原文地址:http://blog.csdn.net/nieweiking/article/details/8663837
解决乱码办法
http://www.cnblogs.com/leodrain/archive/2009/05/04/fixed-sharpziplib-fastzip-not-surport-chinese-charater-file.html
为对象ZipEntry,添加属性
//设置wei unicode编码 entry.IsUnicodeText = true;
相关文章推荐
- Maven3路程(三)用Maven创建第一个web项目(2)servlet演示
- springmvc实现REST中的GET、POST、PUT和DELETE
- linux线程同步(2)-条件变量
- Android开发技术点2——Fragment叠加点击穿透解决方案
- Android 颜色渲染 PorterDuff及Xfermode详解
- 为什么这么多的商业安卓开发者不做混淆?
- 优化HIVE
- iOS 上传图片
- 对经常所使用算法的一些简单总结
- Ubuntu下fcitx安装。(ibus不会用)
- LeetCode204——count primes
- moon 8. URL重写 及 程序提交时 POST与GET请求 在代码上的区别
- Maven3路程(二)Eclipse集成Maven
- .Net 中表达式的转换
- TCP长连接与短连接的区别
- C#类在什么时候分配内存
- 【编程好习惯】精确包含头文件
- VS自带工具:dumpbin的使用
- iOS @property
- iOS第三方-百度地图地图SDK(一)