1. 程式人生 > >使用Java 匯入Zip檔案遇到中文命名亂碼問題

使用Java 匯入Zip檔案遇到中文命名亂碼問題

偶然做到匯入Zip附件,遇到中文命名亂碼,總結下,備註

ZipFile zf = new ZipFile(import_fj);//接收檔案

InputStream is=new BufferedInputStream(new FileInputStream(import_fj));//通過流傳遞
ZipInputStream zin = new ZipInputStream(is,Charset.forName("ISO-8859-1")); //最重要的一個編碼,首先通過ISO-8859-1轉碼
ZipEntry ze=null;
OutputStream fs =null;
Map<String, Object> map=new HashMap<String,Object>();
if(import_fj!=null){
while((ze = zin.getNextEntry()) != null) {
//判斷目錄結構區分檔案和資料夾
ze=new ZipEntry(new String(ze.getName().getBytes("ISO8859_1"),"GBK"));//將ISO-8859-1轉為GBK,此時中文已經正常顯示

if (ze.isDirectory()) {
//資料夾
}else{
//檔案
if(ze.getName()!=null){
//建立(身份證號碼/附件名)型別資料夾格式
String[] s=ze.getName().split("/");
if(s[1]!=null&&s.length>2){
int result=examregisterService.compareBySfzhm(s[1]);
if(result==1){
//資料庫存在報名表圖片資訊建立資料夾通過流匯入圖片檔案
path = getRealPath("/") + "upload\\" +"seaman/examregister/fj/" +s[1];
File file = new File(path);
if(!file.exists()) {
file.mkdirs();
}
maps=getUploadFiles("seaman/examregister/fj/"+s[1]);
//判斷目錄下是否已經存在圖片檔案避免重複讀取檔案流
if(maps==null){
path = getRealPath("/") + "upload\\" +"seaman/examregister/fj/"+s[1]+"/"+s[2];
fs = new FileOutputStream(path);
long size = ze.getSize();
int len;
if (size > 0) {
InputStream fis=zf.getInputStream(ze);
byte[] bt = new byte[1024];
while((len=fis.read(bt)) != -1) {
fs.write(bt,0,len);
}
fs.flush();
fs.close();
fis.close();
successSize++;
}

相關推薦

使用Java 匯入Zip檔案遇到中文命名亂碼問題

偶然做到匯入Zip附件,遇到中文命名亂碼,總結下,備註 ZipFile zf = new ZipFile(import_fj);//接收檔案 InputStream is=new BufferedInputStream(new FileInputStream(import

Java ZIP壓縮和解壓縮檔案(解決中文檔名亂碼問題)

Java ZIP壓縮和解壓縮檔案(解決中文檔名亂碼問題) Java ZIP壓縮和解壓縮檔案(解決中文檔名亂碼問題) 學習了:http://www.tuicool.com/articles/V7BBvy  引用原文: JDK中自帶的ZipOutputStream在壓縮檔

java壓縮zip檔案中文亂碼問題

用java來打包檔案生成壓縮檔案,有兩個地方會出現亂碼 1、內容的中文亂碼問題,這個問題網上很多人給出瞭解決方法,兩種:修改sun的原始碼;使用開源的類庫org.apache.tools.zip.ZipOutputStream和org.apache.tools.zip.ZipEntry,這兩個類ant.ja

Java讀寫檔案中文亂碼解決

讀檔案:使用new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));      StringBuffer strBuf = new StringBuffer(); BufferedRead

mysql資料庫匯入.sql檔案中文亂碼解決

方法一: 通過增加引數 –default-character-set = utf8 解決亂碼問題 mysql -u root -p password < path_to_import_file –default-character-set = utf8 方法二: 在命令列匯入亂碼解

mysql命令列匯入sql檔案以及中文亂碼問題

1.用命令列切換到自己安裝的mysql軟體的bin目錄下 cd C:/Program Files/MySQL/MySQL Server 5.7/bin 2.登入輸入使用者名稱密碼: mysql -u root -p 3.切換資料庫  use zsfzx

linux下mysql匯入sql檔案中文亂碼

檢視資料庫的編碼:進入mysql資料庫下,執行show variables like 'character%';mysql匯入資料庫表的語句為:source sql檔案路徑但是匯入後,發現表中的中文為亂碼,解決方法:在匯入sql檔案之前在資料庫下進行編碼設定: set nam

關於Mysql在匯入.sql檔案出現中文亂碼的解決方法

1.首先在服務裡面關閉mysql服務; 2.在安裝目錄下找到my.ini檔案; 3.修改一下配置 [mysql]default-character-set=utf8,(這個改成default-char

java讀取txt檔案出現中文亂碼

在保證程式碼沒有問題的前提下,讀取txt檔案出現瞭如下亂碼。 解決方法: 1.檢視檔案程式碼的編碼方式是否是ANSI(我使用的文字編輯器為EditPlus) 2.檢視.txt檔案的編碼方式是否是ANSI 修改儲存,結果如下 這裡附如上讀取txt檔案的程式

匯入js檔案出現中文亂碼

      今天從eclispe複製了一個js檔案到idea中,出現了中文亂碼,具體如下圖 下面說解決的辦法: 1.點選idea頁面右下角的,然後選擇GBk 2.之後會彈出下面的一個視窗,這個地方一定選擇Reload(不要選擇錯了) 現在已經能夠看到中文可以正常顯示了,

java匯入EXCLE時檔名中文亂碼

// IE11測試過,是沒有問題的 String userAgent = request.getHeader("USER-AGENT");  if (StringUtils.contains(userAgent, "Chrome") || StringUtils.conta

Java解壓zip檔案(支援中文字元檔案)

昨天接到了一個解壓zip檔案的任務,所以今天在做任務之前,便寫demo試了一下, 部分思路參考自:這裡 貼上程式碼: public void Decompressing2() throws IOException { String pa

SQLServer 2008 匯入txt檔案中文亂碼問題解決辦法

工作需要需要將檔案匯入,對其他表進行操作,但是匯入後發現中文全都亂碼了,現在將匯入步驟及問題解決辦法總結如下: 準備好資料庫和要匯入的.txt檔案 第一步: 第二步: 第三步:依次進入下一步,直到如下所示: 如下圖設定欄位格式: 總之遇到漢字亂碼問題,就設定編碼格式

svn hooks 中文出現亂碼問題

我們在寫svn hooks(鉤子)的時候,通常會嵌入一個svn 命令,如svnlook,以獲取本次提交檔案列表等資訊。 這時就有可能遇到問題:如果提交的檔案路徑中或檔名中帶有中文,可能在獲取的檔案資訊中出現亂碼。如顯示為:?\230?\150?\176?\229?\187?\186?\

Java實現zip檔案壓縮(單個檔案、資料夾以及檔案和資料夾的組合壓縮)

Java實現zip檔案壓縮(單個檔案、資料夾以及檔案和資料夾的組合壓縮) 2016年10月04日 23:22:24 ljheee 閱讀數:13215 標籤: 壓縮javazip 更多 個人分類: Java應用 版權宣告:本文為博

java 關於zip檔案解壓工具類,後續一直更新

前幾天在網上看到過這種,但是覺得還是不怎麼通用, 就自己瞭解原理嘗試的寫了個工具類,希望大家多多指點,不說多了上程式碼了: package com.bdt.framework.zip; import org.slf4j.Logger; import org.slf4j.Logger

Java 複製zip檔案到指定目錄並解壓zip檔案

過程中使用apache的ant jar包 apache-ant-1.8.2.jar  示例程式碼如下: import org.apache.log4j.Logger; import java.io.File; import java.io.IOException;

SpringCloud專案上傳檔案中文檔名亂碼檔案下載

一、檔案上傳亂碼 SpringCloud,路由zuul。 今天在做一個上傳檔案的功能,檔案傳到後臺getOriginalFilename()時檔名中文亂碼。 嘗試了以下2種辦法都不行: 對檔名重新編碼:fileName = new String(fil

Android 解壓zip檔案(支援中文)

PS:用於解壓縮 Google Play 上面下載下來的 obb 擴充套件檔案! 過了n多天後,當再次使用原先部落格上寫的那篇: 去做zip包的解壓的時候,出現了原來沒有發現的很多問題。首先是中文漢字問題,使用java的zip包不能很好的解決解壓問題;其次還有

javazip檔案(ZipFile)

2.類ZipInputStream讀出ZIP檔案序列(簡單地說就是讀出這個ZIP檔案壓縮了多少檔案),而類ZipFile使用內嵌的隨機檔案訪問機制讀出其中的檔案內容,所以不必順序的讀出ZIP壓縮檔案序列。注意:ZIPInputStream和ZipFile之間另外一個基本的不同