vertx Java下载文件名特殊字符

vertx Java下载文件名特殊字符,java,encoding,vert.x,download,Java,Encoding,Vert.x,Download,我正在用Java和Vertex编写一个简单的文件下载,但无法获得正确的文件名,例如:gadže zèleno_iscusinţă.pdf(这是罗马尼亚语) 这是我的密码: ctx.response() .putHeader(HttpHeaders.CONTENT_TYPE, contenype) .putHeader("Content-Disposition", String.format(inline; filename="gadže zèleno_iscusi

我正在用Java和Vertex编写一个简单的文件下载,但无法获得正确的文件名,例如: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"))
但是它把所有的空间都变成了“+”,这是不好的:(.gadže+zèlenoèu 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();