Почему делает HttpUtility. UrlEncode (HttpUtility. UrlDecode (“%20”)), возвращаются + вместо %20?

Netbeans (Swing)

15
задан Joseph 13 October 2009 в 16:55
поделиться

3 ответа

Цитата из этой ссылки

Я сам сталкивался с этим. если ты могут менять пробелы на% 20s то IE7 их правильно конвертирует. Firefox хоть возьмет их буквально (по крайней мере, при использовании Заголовок Content-disposition), чтобы вы это нужно будет сделать для запросов от Только для IE 7.

В нашем приложении мы сделали следующее. (а репозиторий документов на основе tomcat)

 String userAgent = request.getHeader ("User-Agent");
if (userAgent.contains ("MSIE 7.0")) {
 filename = filename.replace ("", "% 20"); 
} 
response.addHeader ("Размещение содержимого",
 "вложение; имя файла = \" "+ имя файла +" \ "");
6
ответ дан 1 December 2019 в 01:38
поделиться

Обычно и% 20, и + являются допустимыми способами кодирования пробела. Очевидно, что метод UrlEncode должен выбрать один из вариантов ... если бы он выбрал другой способ, кто-то еще спросил бы, почему UrlEncode (UrlDecode ("+")) вернул «% 20» ...

Вы всегда можете его закодировать, а затем просто замените прямую строку на «+» на «% 20». Я думаю , что сработает ...

16
ответ дан 1 December 2019 в 01:38
поделиться

Я подумал, что лучшим вариантом будет UrlEncode для имени файла

Это неправильный способ помещать внеполосные символы в параметр заголовка, такой как Content-Disposition-filename, и работает (иногда) только в IE из-за ошибки. На самом деле это извечная проблема: нет правильного пути .

Если вам нужно вставить специальные символы в загруженное имя файла, вы не сможете сделать это надежно с Content-Disposition-filename. Вместо этого опустите параметр 'filename' в заголовке Content-Disposition-attachment и оставьте имя файла, которое вы хотите, в конечной части URL-адреса. В отсутствие параметра имени файла браузер будет брать его из пути URL, где кодирование URL является правильным способом обработки специальных символов.

9
ответ дан 1 December 2019 в 01:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: