当前位置: 技术问答>java相关
关于zip文件解压缩的问题,愿有相关经验的高手指点,200分相赠送
来源: 互联网 发布时间:2015-11-16
本文导语: 解压缩英文文件名的文件时候正常,但当zip文件中包含中文文件名的文件时,解压缩出错,抛出异常java.lang.IllegalArgumentException 基本代码如下: ZipInputStream in = new ZipInputStream(new FileInputStream(zipfile)); ZipE...
解压缩英文文件名的文件时候正常,但当zip文件中包含中文文件名的文件时,解压缩出错,抛出异常java.lang.IllegalArgumentException
基本代码如下:
ZipInputStream in = new ZipInputStream(new FileInputStream(zipfile));
ZipEntry entry;
while ((entry = in.getNextEntry()) != null) {
// unzip operation
当要取的文件为中文文件名的文件时,出现异常IllegalArgumentException
}
基本代码如下:
ZipInputStream in = new ZipInputStream(new FileInputStream(zipfile));
ZipEntry entry;
while ((entry = in.getNextEntry()) != null) {
// unzip operation
当要取的文件为中文文件名的文件时,出现异常IllegalArgumentException
}
|
public static String UnicodeToChinese(String s){
try{
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
利用上面的函数,转换你的函数名为unicode。
就可以了,java对中文的支持不是很好,所你要在读到是中文的时候转换编码。就可以了,转成unicode,应该不会有问题了。
try{
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
}
public static String ChineseToUnicode(String s){
try{
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
return newstring;
}
catch(UnsupportedEncodingException e)
{
return s;
}
利用上面的函数,转换你的函数名为unicode。
就可以了,java对中文的支持不是很好,所你要在读到是中文的时候转换编码。就可以了,转成unicode,应该不会有问题了。
|
用InputStreamReader构造一下ZipInputStream
|
用 wjmmml(笑着悲伤) 的方法试了一下,好象不行,关注一下~
|
支持hccpro(hcc) 的观点, inputstream 是字节流读中文可能有问题,inputstreamreader 按字符读应该不会出错.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。