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
Firefox的返回是這樣的: 但MSIE回報
所以很可能編碼方法改變「」到「+」0僅在Internet Explorer中出現此問題。有人能告訴我爲什麼嗎?
您是否知道您的URLEncoder.encode()不要求火狐?或者我在這裏錯過了什麼? –
我意識到這一點。但是,編碼好可以用特殊字符來完成。問題在於空格(「」)。你能幫我解決這個問題嗎? – Adamo
我會提到該解決方案正在檢查其他瀏覽器,並且問題僅在MSIE中出現。 – Adamo