急!!java linux 从服务器上创建一个zip包 向zip包里写文件 下载zip包中文乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!!java linux 从服务器上创建一个zip包 向zip包里写文件 下载zip包中文乱码相关的知识,希望对你有一定的参考价值。

java linux 从服务器上创建一个zip包 向zip包里写文件 下载zip包中文乱码
功能都以实现 只剩中文乱码问题 求大神帮忙解决财富值不多一百分奉上!
代码如下
public void writeZipFileTest(String srcPath, String... paths)
fos = new FileOutputStream(srcPath);
csum = new CheckedOutputStream(fos, new Adler32());
zos = new ZipOutputStream(csum);
out = new BufferedOutputStream(zos);
for (String str : paths)
BufferedReader in = new BufferedReader(new FileReader(str));
zos.putNextEntry(new ZipEntry(name));
int c;
while ((c = in.read()) != -1) out.write(c);
out.flush();
zos.setEncoding("UTF-8");
zos.closeEntry();
flag ++;

用的是什么zip库,有没有设置编码格式。
例如,zip4j的话,zf.setFileNameCharset("UTF-8");追问

我把代码粘了出来 麻烦看下

追答

zos在put之前先设编码啊
zos.setEncoding("你的编码格式");

追问

没有用

参考技术A LANG=zh_cn追问

服务器其他东西太多 更改的话牵扯面太大

追答

你设置字符编码格式了吗?Java写入的时候

追问

我把代码粘了出来 麻烦看下

追答

设置编码放前面,你放最后能有啥用啊,都已经写完了才设置

追问

放前面也没用

急!急!急!服务起来一直报java.io.IOException: Connection reset by peer这个怎么解决!

java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379)
at io.netty.buffer.UnpooledUnsafeDirectByteBuf.setBytes(UnpooledUnsafeDirectByteBuf.java:446)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:881)
at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:225)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:744)

Connection reset by peer的常见原因:
1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接关闭;
如果知道实际连接服务器的并发客户数没有超过服务器的承载量,则有可能是中了病毒或者木马,引起网络流量异常。可以使用netstat -an查看网络连接情况。
2)客户关掉了浏览器,而服务器还在给客户端发送数据;
3)浏览器端按了Stop;
这两种情况一般不会影响服务器。但是如果对异常信息没有特别处理,有可能在服务器的日志文件中,重复出现该异常,造成服务器日志文件过大,影响服务器的运行。可以对引起异常的部分,使用try…catch捕获该异常,然后不输出或者只输出一句提示信息,避免使用e.printStackTrace();输出全部异常信息。
4)防火墙的问题;
如果网络连接通过防火墙,而防火墙一般都会有超时的机制,在网络连接长时间不传输数据时,会关闭这个TCP的会话,关闭后在读写,就会导致异常。 如果关闭防火墙,解决了问题,需要重新配置防火墙,或者自己编写程序实现TCP的长连接。实现TCP的长连接,需要自己定义心跳协议,每隔一段时间,发送一次心跳协议,双方维持连接。
5)JSP的buffer问题。
JSP页面缺省缓存为8k,当JSP页面数据比较大的时候,有可能JSP没有完全传递给浏览器。这时可以适当调整buffer的大小。
参考技术A 我来猜一下! 数据库 连接错了

以上是关于急!!java linux 从服务器上创建一个zip包 向zip包里写文件 下载zip包中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

高分求解,急!!!Java连接Oracle10g 问题 java.sql.SQLException: 无法从套接字读取更多的数据

Nginx虚拟目录连接文件服务器,如何连接呢?急急急!!!

java 怎么设置环境变量 急!!!

急:使用webservice方式跟第三方通讯时超时【java.net.ConnectException: Connection timed out】

急!!vb怎么创建数组?

急,LINUX操作系统的时间与时间服务器NTP同步时间问题