簡體   English   中英

vertx Java下載文件名特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM