Java本地化文件名
发布时间:2020-12-14 23:44:08 所属栏目:Java 来源:网络整理
导读:如何在 java.Current中设置本地化文件名每次我点击我的应用程序中具有非ascii文件名的本地化文件时,会弹出 Windows保存对话框,但如果字符集是ISO-以上的任何内容,则它不能正确显示文件名88859-1. 这是我保存文件的代码. InputStream inputStream = null; try
如何在
java.Current中设置本地化文件名每次我点击我的应用程序中具有非ascii文件名的本地化文件时,会弹出
Windows保存对话框,但如果字符集是ISO-以上的任何内容,则它不能正确显示文件名88859-1.
这是我保存文件的代码. InputStream inputStream = null; try { response.resetBuffer(); response.setContentType(fileStream.getContentType()); response.setContentLength((int) fileStream.getContentLength()); response.addHeader("Content-Disposition","attachment;filename="" + fileName + """); ServletOutputStream stream = response.getOutputStream(); byte[] buffer = new byte[1024]; int read = 0; int total = 0; inputStream = fileStream.getInputStream(); while ((read = inputStream.read(buffer)) > 0) { stream.write(buffer,read); total += read; } response.flushBuffer(); } finally { if (inputStream != null) { inputStream.close(); } } 如果有人可以就如何解决这个问题分享他们的想法,我会非常有帮助. 解决方法
古斯塔夫说的是正确的,但它并没有让你到达你想成为的地方.
RFC 2231允许您为非ASCII Content-Type和Content-Disposition参数使用替代格式,但并非所有浏览器都支持它.遗憾的是,最可能工作的方式是忽略RFC 2183所说的内容并在响应中使用
RFC 2047 encoded-words:
response.addHeader("Content-Disposition","attachment; " + "filename="" + MimeUtility.encodeWord(fileName,"utf-8","Q") + """); 请注意,这可能不适用于所有浏览器. IE的某些变体要求您对值进行URL编码: response.addHeader("Content-Disposition","attachment; filename=" + URLEncoder.encode(filename,"utf-8")); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |