Problema chino en URL
Porque la conexión solicitada no admite chino
El ejemplo es el siguiente:
String string = "Cai Junru";
String eStr = URLEncoder.encode(string, "utf-8");
System.out.println(eStr);
Sistema .out.println(URLDecoder.decode(eStr, "utf-8");
Salida:
%E8%94A1%E5%E5%E5%E5%E5 %E5 %E5%E5%E5%E5%E5%E5%E5%E5%E5%E5decode(eStr, "utf-8"));
Salida:
% E8% 94%A1%E5%90% 9B%E5%A6%82
Cai Junru
Lo anterior es el formato de codificación utilizado por la URL si el parámetro contiene este formato. , el servidor lo decodificará:
new String(user.getName().getBytes("iso-8859-1"), "utf-8")
No lo hagas. use URLDecoder al decodificar, obtenga los parámetros directamente en bytes y luego decodifique de acuerdo con el formato de codificación
Al descargar un archivo, simplemente escriba el archivo en el flujo de salida de respuesta:
respuesta.reset ();
respuesta .setContentType("bin");
respuesta.addHeader("Content-Disposition", "adjunto; nombre de archivo=\"" p>
+ new String(sss. getBytes("iso-8859-1"), "utf-8") + "\"") ;
OutputStream os = respuesta.getOutputStream() ;
String pathString = request.getRealPath("/")
+ new String(sss.getBytes(" iso-8859-1"), "utf-8");
InputStream es = new FileInputStream(new File(pathString));
byte[] buffer = nuevo byte[2048];
int len = 0;
while ((len = is.read(buffer)) > 0) {
os.write(buffer, 0, len);
}
is.close() ;
os.flush();
os.close();
Esto devolverá un archivo~~
¡Espero que te haya ayudado!