Antes, generalmente escribíamos así:
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
La razón por la cual el archivo descargado no puede mostrar el nombre del archivo chino es porque necesita convertir la codificación UTF-8 a ISO-8858-1.
response.setHeader("Content-Disposition", "attachment; filename="
+ new String(fileName.getBytes("utf-8"),"ISO-8859-1"));