¿Cómo puedo establecer nombres de archivos localizados en java? En la actualidad cada vez que hago clic en un archivo localizado que tiene un nombre de archivo no ASCII en mi aplicación, el cuadro de diálogo de guardar aparece, pero no muestra el nombre de archivo juego de caracteres está por encima de ISO-88859-1.Nombres de archivos localizados en Java
Este es mi código que guarda el archivo.
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, 0, read);
total += read;
}
response.flushBuffer();
} finally {
if (inputStream != null) {
inputStream.close();
}
}
Sería muy útil si alguien pudiera compartir sus ideas sobre cómo resolver este problema. Gracias de antemano.
DKarp, Este código fue realmente útil. Ahora podría obtener los resultados deseados en todos los navegadores que no sean IE. Con IE al descargar el archivo, está codificando el nombre del archivo para que se muestre en el formato correcto, pero agrega la URL completa y cuando intento descargar un archivo .xls, muestra un cuadro de progreso de descarga con una alerta que dice "Internet Explorer no pudo abrir este sitio. El sitio no está disponible o no se puede encontrar ". Una vez más quisiera que me señalaras en la dirección correcta. Muchas gracias por tu ayuda. – Hitatichi
¿Cuál es el código que está utilizando para configurar el encabezado 'Content-Disposition' para IE? Creo que algunas versiones de IE pueden no funcionar bien con el plegado de encabezado, así que asegúrate de no poner una nueva línea extra en el encabezado ... – dkarp
Utilicé URLEncoder para IE exactamente como lo especificaste en la respuesta. response.addHeader ("Content-Disposition", "attachment; filename =" + URLEncoder.encode (filename, "utf-8")); – Hitatichi