找回密码
 立即注册

QQ登录

只需一步,快速开始

wujfgx

注册会员

3

主题

6

帖子

47

积分

注册会员

积分
47
最新发帖
wujfgx
注册会员   /  发表于:2016-9-10 22:57  /   查看:3534  /  回复:3
用以下代码压缩文件后,如果被压缩目录下有中文文件名则在压缩后中文文件名显示为????而且解压时会报错。
            C1ZipFile moZip = new C1ZipFile();
            moZip.Create(desPath);
            moZip.Entries.AddFolder(sourcePath, "*.*",true);
            moZip.Close();

但是C1Zipper那个Demo可以正常压缩中文文件名并解压。不清楚是什么问题。如果设置 moZip.UseUtf8Encoding = true;中文文件名完全变成乱码。

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-9-12 09:37:56
沙发
谢谢您的反馈。
根据您的描述,示例是可以正常压缩文件名,你可以按照示例做您的Demo,或是检查下您的Demo和示例有什么区别。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
wujfgx
注册会员   /  发表于:2016-9-17 22:12:11
板凳
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); 
感谢回复。
发现是因为将CultureInfo设置为en-US导致的。但是有个问题,假设用户使用中文操作系统,但是应用界面选择使用英文,而应用又是通过CultureInfo来实现多语言设置,那么ZIP压缩后的中文文件名会变成乱码。有没有办法解决这个问题,否则只能要求用户在中文系统下必须设置为中文界面而不能使用英文界面了。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-9-18 11:44:22
地板
wujfgx 发表于 2016-9-17 22:12
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.Cul ...

默认是使用系统的Culture,你可以自己去判断用户使用的是什么语言,并在程序里设置相应合适的语言。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部