0
У меня есть метод:кодировки имен файлов с base64 в MSIE
private String encodeFileAttachment(HttpServletRequest request, String filename) throws IOException {
String userAgent = request.getHeader("User-Agent");
if (userAgent.contains("Mozilla") && !userAgent.contains("MSIE")) {
return "=?UTF-8?B?" + new String(Base64.encodeBase64(filename.getBytes("UTF-8")), "UTF-8") + "?=";
} else {
return filename = URLEncoder.encode(filename, "UTF-8");
}
}
и имя файла, как:
SSS ZZZ ddd.png
светлячок вернуть что-то вроде этого: но MSIE возвращение
Так что, вероятно, изменение метода кодирования "" на '+' Эта проблема возникает только в Internet Explorer. Может ли кто-нибудь сказать мне, почему?
Знаете ли вы, что ваш URLEncoder.encode() не вызывается для Fire Fox? Или я чего-то не хватает? –
Я это понимаю. Но это кодирование хорошо может сделать трюк со специальными символами. Проблема заключалась в пробелах (""). Не могли бы вы помочь мне с этой проблемой? – Adamo
Упомянем, что решение проверяет другие браузеры, и проблема возникает только в MSIE. – Adamo