URLEncoder и URLDecoder кодируют и декодируют Javadoc. Примечание. Что делать, если UTF-8 не используется? - PullRequest
1 голос
/ 01 сентября 2010

Итак, в javadoc для кодирования URLEncoder и декодирования URLDecoder есть следующее примечание:

Note: The World Wide Web Consortium Recommendation states that UTF-8 should be used. Not doing so may introduce incompatibilites."

Однако, если кто-то отправит запрос с другим типом кодировки, не будет ли плохой идеей кодировать с помощью UTF-8? Что-то не так с проверкой заголовка (если он существует) и использованием какой-либо кодировки, указанной там? Возможно, некоторые дополнительные сведения к этой заметке позволят мне придать ей больше смысла, если кто-нибудь сможет ее предоставить.

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

Tomcat и некоторые другие веб-серверы имеют отдельную настройку, которая управляет декодером, используемым для URL в запросе GET.В частности, Tomcat будет использовать кодировку символов по умолчанию на сервере, если только она не указана в атрибуте URIEncoding «Соединителя».

Я нашел обсуждение в этой записи полезным, когдаимел дело с похожими проблемами.

1 голос
/ 01 сентября 2010

Веб-сайты некоторых стран используют другие кодировки, поскольку UTF-8 будет неэффективен для их языков.

URL-адреса обычно непрозрачны.Это последовательность символов ASCII, которые были сгенерированы веб-сайтом и использованы тем же веб-сайтом.Пока сам веб-сайт может его анализировать, это хорошо.

С другой стороны, люди хотят просматривать URL-адреса, пытаться понять более мелкие детали.Браузер при отображении URL-адреса, полного октетов, кодированных%, может захотеть преобразовать их обратно в символы.К сожалению, он должен угадывать кодировку символов, теоретически кодировка может быть любой, даже проприетарной.

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

Так что, если вы владелец сайта и хотите быть хорошим, лучше поддерживать URL-адреса в кодировке UTF-8.Конечно, вы не должны быть.Это ваши URL, это ваше дело.

1 голос
/ 01 сентября 2010

В той же документации

Рекомендуемая схема кодирования - UTF-8.Однако из соображений совместимости, если кодировка не указана, используется кодировка платформы по умолчанию.

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


Ресурсы:

...