#java #spring #http #jsp #servlets
#java #spring #http #jsp #сервлеты
Вопрос:
Привет участникам форума,
Я не могу выяснить причину замены символов GB18030 пустыми пробелами при загрузке файла. Прикрепил мой код для вашей справки.
request.setCharacterEncoding("UTF-8");
String keyname = request.getParameter("keyname");
String format = request.getParameter("format");
// To be executed during check-out operation only.
if (format != null amp;amp; keyname != null) {
ByteArrayOutputStream inStream = null;
try {
pgpPublicKeyInfoDb = new PGPPublicKeyInfoDb();
inStream = pgpPublicKeyInfoDb.checkOutPGPPublicKey(keyname, format);
response.setContentLength(inStream.size());
if (format.equals("ASC")) {
response.setContentType("application/asc; charset=UTF-8");
response.setHeader("Content-Disposition", "filename=" keyname ".asc");
} else {
response.setContentType("application/pgp; charset=UTF-8");
response.setHeader("Content-Disposition", "filename=" keyname ".pgp");
}
inStream.writeTo(response.getOutputStream());
Ответ №1:
символы, отличные от ASCII, в параметрах имени файла недопустимы, и браузеры различаются в том, что они с ними делают.
Если вам нужно надежное и переносимое решение, вам необходимо использовать UTF-8 и экранирование, определенное вhttps://greenbytes.de/tech/webdav/rfc6266.html.