以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  zipfile 和中文乱码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131444)

--  作者:lur320
--  发布时间:2019/2/26 13:35:00
--  zipfile 和中文乱码
如下代码,用于制作1个zip压缩包,但是当待压缩的文件有中文字符时,会出现乱码。请问如何处理?我不能修改客户端默认的ZIP程序。
Dim fileloc  As String=Args(0)

Dim filenam,newfileloc As String

If FileSys.DirectoryExists(ProjectPath & "tempfile\\zipfs")=False Then
    FileSys.CreateDirectory(ProjectPath & "tempfile\\zipfs")
End If

Dim zip As New zipFile
filenam=ProjectPath & "tempfile\\zipfs\\tempzip" & Val2 & ".zip"

Do While FileSys.FileExists(filenam)
    Val2 = Rand.Next(1000)
    filenam=ProjectPath & "tempfile\\zipfs\\tempzip" & Val2 & ".zip"
Loop


zip.Create(filenam)
zip.AddFile(fileloc)   就是这里出问题,如果fileloc含有中文字符,则放入zip文件后会被乱码替代掉,并且不能再打开。
zip.Close()

Return filenam
[此贴子已经被作者于2019/2/26 13:36:05编辑过]

--  作者:有点甜
--  发布时间:2019/2/26 14:20:00
--  

 

你卸载重装一下你的winzip软件。

 


--  作者:lur320
--  发布时间:2019/2/28 9:44:00
--  
确认了,不是电脑上ZIP文件的问题,而是狐表c1zip.zipfile的bug。
这个c1zip.zipfile仅支持Code Page 437。。。。

用电脑上zip文件手动添加压缩包是OK的,用狐表代码怎不行。

同样的问题见:
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=97839&skin=0

--  作者:有点甜
--  发布时间:2019/2/28 9:52:00
--  

1、卸载重装winzip,安装360的或者winzip。

 

2、如果还有,请上传具体实例测试。


--  作者:lur320
--  发布时间:2019/2/28 10:00:00
--  
电脑用的是7zip。并且集团管控不能改。
并且刚在没有压缩软件的电脑上试了代码,依旧不能压缩中文名字的文件。
和c1.zip.2.dll的帮助文件说明的现象一致。


--  作者:有点甜
--  发布时间:2019/2/28 10:06:00
--  

安装winzip或者好压或者360zip。

 

我测试没问题,请安装别的zip文件。

 


--  作者:lur320
--  发布时间:2019/2/28 10:25:00
--  
不能修改或安装其他软件,即使OK了。也不能保证发布后每台客户端都是可用的winzip、


如何在狐表里面处理掉这个问题?引用新的dll?或者c1.zip.4.dll ?

--  作者:有点甜
--  发布时间:2019/2/28 10:28:00
--  

 

这个是你的电脑或者你的的zip软件所决定的,无法处理。

 

 


--  作者:有点甜
--  发布时间:2019/2/28 10:31:00
--  

不然你就换一个第三方zip工具

 

https://www.baidu.com/baidu?wd=SharpZipLib.dll

 


--  作者:lur320
--  发布时间:2019/2/28 10:52:00
--  
除了做DLL的引用,还有什么教程可以用?