<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • java導出word文檔亂碼(導出word文檔案例)


    公司數據遷移,一些附件無法直接導入到新系統,然后需要將附件從原系統下載到本地再上傳到新系統,系統平臺為 jira ,這里寫了一個批量上傳的代碼,采用的是 curl 的方式,其中需要獲取本地文件路徑:

    public static ArrayList<String> getFiles(String path) {
    		ArrayList<String> files = new ArrayList<>();
    		File file = new File(path);
    		if (file.exists() && file.isDirectory() && file.canRead()) {
    			File[] tempList = file.listFiles();
    			for (int i = 0; i < tempList.length; i++) {
    				if (tempList[i].isFile()) {
    					files.add(tempList[i].toString());
    				}
    			}
    			return files;
    		}
    		return null;
    	}

    這時候出現了一個問題,文件名包含中文,debug 的時候發現獲取到的文件名出現了亂碼

    java 獲取本地文件名及中文名亂碼解決
    java 獲取本地文件名及中文名亂碼解決

    看了很多文章說需要轉碼,一一嘗試沒什么用,這時候獲取本地編碼方式發現出現了一個很奇怪的編碼:Cp1252,最后終于找到問題所在,是eclipse 默認編碼的問題(別問我為什么不用 IDEA,公司不給用?。。?,解決方式如圖:

    Window –> preference –>

    java 獲取本地文件名及中文名亂碼解決

    將編碼格式修改為 UTF-8,再次運行程序就沒有文件名亂碼的問題了。

    批量上傳:

    public static String execCurl(String issueKey, String file) {
    		HashMap<String, String> info = GetPropertiesUtil.getInfo();
    		String user = info.get("user");
    		String password = info.get("password");
    		String domain = info.get("domain");
    		
    		String[] cmds = { "curl", "-D-", "-u", user + ":" + password, "-X", "POST", "-H", "X-Atlassian-Token: no-check",
    				"-F", "file=@" + file, domain + issueKey + "/attachments" };
    		ProcessBuilder process = new ProcessBuilder(cmds);
    		Process p;
    		try {
    			p = process.start();
    			BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    			StringBuilder builder = new StringBuilder();
    			String line = null;
    			while ((line = reader.readLine()) != null) {
    				builder.append(line);
    				builder.append(System.getProperty("line.separator"));
    			}
    			return builder.toString();
    
    		} catch (IOException e) {
    			System.out.print("error");
    			e.printStackTrace();
    		}
    		return null;
    	}

    注意:curl 命令要存到一個字符串數組內。

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费