Почему символ повреждается когда использование request.getParameter () в Java? [дубликат]

URL является случайной строкой насколько я могу сказать.

Это может все еще быть легко получено. Это - только img внутренняя часть привязка, названная poster.

Так, если Вы читаете источник, просто ищут <a name="poster", и это будет текст после первого src=" оттуда.

Однако необходимо будет держать код анализа экранных данных в курсе, потому что это, вероятно, изменится.

<час>

необходимо также знать, что изображения защищены авторским правом, так стараться только использовать изображение под хорошим объяснением "добросовестного использования".

8
задан MemoryLeak 1 September 2009 в 17:19
поделиться

2 ответа

Когда вы вводите URL-адрес в адресной строке браузера, браузер может преобразовать кодировку символов до кодирования URL. Однако это поведение не совсем четко определено, см. Мой вопрос

Обработка кодировки символов в URI на Tomcat

В большинстве новых браузеров мы получаем UTF-8 и Latin-1, но мы получаем все виды кодировок (включая Big5) в старых. Поэтому лучше избегать символов, отличных от ASCII, в URL, вводимых пользователем напрямую.

Если URL встроен в JSP, вы можете принудительно преобразовать его в UTF-8, сгенерировав его следующим образом:

String link = "http://hello/world?name=" + URLEncoder.encode(name, "UTF-8");

На Tomcat требуется кодировка чтобы быть указанным в коннекторе таким образом,

<Connector port="8080" URIEncoding="UTF-8"/>

Вам также необходимо использовать request.setCharacterEncoding ("UTF-8") для кодирования тела, но это ' Это небезопасно устанавливать в сервлете, потому что это работает только тогда, когда параметр не обрабатывается, но другой фильтр или вентиль может запустить обработку. Так что вы должны делать это в фильтре. Tomcat поставляется с таким фильтром в дистрибутиве исходного кода.

14
ответ дан 3 November 2019 в 14:03
поделиться

В URL-адресе нельзя использовать символы, отличные от ASCII - их всегда нужно кодировать в процентах. При этом браузеры испытывают трудности с их отображением. Рендеринг работает лучше всего, если вы кодируете URL-адрес в UTF-8, а затем кодируете его в процентах. Для вашего конкретного URL-адреса это даст http: // hello / world? Name =% E5% A9% 80% E3% 84% 89 (проверьте в своем браузере, что он дает для этой конкретной ссылки). Когда вы получаете параметр в JSP, вам необходимо явно удалить его из кавычек, а затем декодировать из UTF-8, поскольку браузер отправит его как есть.

6
ответ дан 3 November 2019 в 14:03
поделиться
Другие вопросы по тегам:

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