ダウンロードダイアログで日本語ファイル名が文字化けしないようにする

request : HttpServletRequest, response : HttpServletResponse

String fileName = "予定表うんたらかんたら.txt";
if (request.getHeader("User-Agent").indexOf("MSIE") == -1) {
  // Firefox, Opera 11
  response.setHeader("Content-Disposition", String.format(Locale.JAPAN, "attachment; filename*=utf-8'jp'%s", URLEncoder.encode(fileName, "utf-8")));
} else {
  // IE7, 8, 9
  response.setHeader("Content-Disposition", String.format(Locale.JAPAN, "attachment; filename=\"%s\"", new String(fileName.getBytes("MS932"), "ISO8859_1")));
}