Как кодировать / декодировать строку запроса из тега html-объекта? - PullRequest
0 голосов
/ 13 мая 2019

У меня есть тег объекта, который я использую его атрибут данных для вызова сервлета, как показано ниже. Я передаю параметр в этот URL. в случае, если значение этого параметра не английское> арабское, например. затем, когда я получаю значение этого параметра в указанном сервлете,> его значение выглядит примерно так:

Я попытался добавить какой-нибудь другой параметр строки запроса, например && useUnicode = да && characterEncoding = UTF-8 на URL, но без удачи. Я также пытался использовать некоторый код, такой как request.setCharacterEncoding ( "UTF-8"); к сервлету, но без удачи тоже.

Вот так выглядит мой код:

<object data="servletName.ex?fileName=${fileNameValue}">click</object>

Я хочу получить арабское значение таким, какое оно есть, когда получаю значение параметра имени файла.

1 Ответ

0 голосов
/ 13 мая 2019

Вам необходимо кодировать URL-адрес fileNameValue .Вы не можете указать серверу, какую кодировку использовать для URL, добавив эту информацию в URL.Сервер должен знать, прежде чем он читает запрос - что невозможно.;) В наше время можно смело предполагать, что сервер ожидает UTF-8.Имеет смысл - он должен быть готов понять эти 2-байтовые последовательности Юникода.Единственный улов: URL не могут содержать эти символы.Это является причиной для кодирования URL / сброса процентов.

Если ваше имя файла будет «Über» - ваш запрос будет: «% C3% 9Cber».Это 2-байтовое значение в кодировке UTF-8 для этого первого специального символа в кодировке URL.

...