为什么括号总是转换为%28?

时间:2017-03-08 05:30:42

标签: jsp

我在jsp中使用导出文件excel。 但我有一个存在括号的文件名的问题。 它总是从(到%28和)转换为%29。

例如:%28주%29테스트.xlsx

String fileName = "(주)테스트.xlsx";
response.setHeader("Content-Disposition", "attachment; filename="+URLEncoder.encode(fileName, "UTF-8"));
response.setContentType("application/vnd.ms-excel");
workbook.write(response.getOutputStream());
workbook.close();
response.getOutputStream().flush();
response.getOutputStream().close();

任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:0)

您正在将文件名转换为UTF-8 Charset。在那个字符集中,你可以猜到,(是%28和)是%29。这应该不是问题。它只会将其读作括号。这(当然)由编码方法完成。你可以在这里读到它。 https://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html