vertx Java 下载文件名特殊字符
vertx Java download filename special characters
我正在通过 Java 和 vertx 编写一个简单的文件下载,但我无法获得正确的文件名,例如:gadže zè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"))
但它使所有 space 变成“+”,这不好 :(.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();
我正在通过 Java 和 vertx 编写一个简单的文件下载,但我无法获得正确的文件名,例如:gadže zè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"))
但它使所有 space 变成“+”,这不好 :(.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();