[英]vertx Java download filename special characters
我正在用Java和vertx編寫一個簡單的文件下載,但無法獲得正確的文件名,例如:gadžezèleno_iscusinţă.pdf(這是羅馬尼亞語言)
這是我的代碼:
ctx.response()
.putHeader(HttpHeaders.CONTENT_TYPE, contenype)
.putHeader("Content-Disposition", String.format(inline; filename="gadže zèleno_iscusinţă.pdf")
.putHeader(HttpHeaders.TRANSFER_ENCODING, "chunked")
.sendFile(filePath).end();
使用此代碼會使下載文件名的格式錯誤:
gad-e zèleno_iscusin--.pdf
我嘗試使用URLEncoder.encode()來結束文件名的編碼:
.putHeader("Content-Disposition", String.format(inline; filename=URLEncoder.encode("gadže zèleno_iscusinţă.pdf"))
但這會使所有空間都變成“ +”,這是不好的:(。gadže+zèleno_iscusinţă.pdf
有誰知道以正確格式命名該名稱的方法嗎? 請幫忙...
我做到了...。使用UTF-8和ISO-8859-1。 該代碼將是這樣的。
String fileName = "gadže zèleno_iscusinţă.pdf";
String encodeFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
ctx.response()
.putHeader(HttpHeaders.CONTENT_TYPE, contenype)
.putHeader("Content-Disposition", encodeFileName)
.putHeader(HttpHeaders.TRANSFER_ENCODING, "chunked")
.sendFile(filePath).end();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.