Что надлежащий путь к URL, кодируют символы Unicode?

Страница должна обновляться автоматически с использованием метатега

<meta http-equiv="Refresh" content="60"> 

значение содержимого в секундах. После одной минуты страница должна обновляться

106
задан Josh Gibson 26 May 2009 в 21:18
поделиться

5 ответов

Я всегда кодировал бы в UTF-8. Со страницы Википедии о процентном кодировании :

Общий синтаксис URI требует, чтобы новые схемы URI, которые обеспечивают представление символьных данных в URI, по сути, должны представлять символы из незарезервированного набора без перевода , и должен преобразовать все остальные символы в байты в соответствии с UTF-8, а затем закодировать эти значения в процентах. Это требование было введено в январе 2005 г. с публикацией RFC 3986 . На схемы URI, представленные до этой даты, это не повлияет.

Похоже, что из-за того, что в прошлом использовались другие общепринятые способы кодирования URL, браузеры пытаются использовать несколько методов декодирования URI, но если вы делаете кодировку, следует использовать UTF-8.

64
ответ дан 24 November 2019 в 03:53
поделиться

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

0
ответ дан 24 November 2019 в 03:53
поделиться

Похоже, что общее правило заключается в том, что браузеры кодируют ответы формы в соответствии с типом содержимого страницы, с которой была получена форма. Это предположение, что если сервер отправляет нам «text / xml; charset = iso-8859-1», то они ожидают ответов в том же формате.

Если вы просто вводите URL-адрес в строке URL-адреса, тогда у браузера нет базовой страницы для работы, и поэтому ему просто нужно угадывать. Таким образом, в этом случае кажется, что он все время выполняет utf-8 (поскольку оба ваших ввода выдавали трехоктетные значения формы).

Печальная правда заключается в том, что AFAIK не существует стандарта для того, какой символ устанавливает значения в строке запроса или любые символы в URL-адресе, следует интерпретировать как. По крайней мере, в случае значений в строке запроса нет оснований предполагать, что они обязательно действительно соответствуют символам.

Это известная проблема, когда вы должны сообщить своей серверной платформе, какой набор символов вы используете. ожидайте, что строка запроса будет закодирована как --- например, в Tomcat вы должны вызвать request.setEncoding () (или какой-либо аналогичный метод) до того, как вы вызовете любой из методов request.getParameter () . Нехватка документации по этому вопросу, вероятно, отражает недостаточную осведомленность о проблеме среди многих разработчиков. (Я регулярно спрашиваю собеседников Java, в чем разница между Reader и InputStream, и регулярно получаю пустые взгляды)

s нет оснований предполагать, что они обязательно действительно соответствуют символам.

Это известная проблема, когда вы должны указать своей серверной структуре, какой набор символов вы ожидаете, что строка запроса будет закодирована как --- для Например, в Tomcat вы должны вызвать request.setEncoding () (или другой подобный метод) перед тем, как вы вызовете любой из методов request.getParameter (). Нехватка документации по этому вопросу, вероятно, отражает недостаточную осведомленность о проблеме среди многих разработчиков. (Я регулярно спрашиваю собеседников Java, в чем разница между Reader и InputStream, и регулярно получаю пустые взгляды)

s нет оснований предполагать, что они обязательно действительно соответствуют символам.

Это известная проблема, когда вы должны указать своей серверной структуре, какой набор символов вы ожидаете, что строка запроса будет закодирована как --- для Например, в Tomcat вы должны вызвать request.setEncoding () (или другой подобный метод) перед тем, как вы вызовете любой из методов request.getParameter (). Нехватка документации по этому вопросу, вероятно, отражает недостаточную осведомленность о проблеме среди многих разработчиков. (Я регулярно спрашиваю собеседников Java, в чем разница между Reader и InputStream, и регулярно получаю пустые взгляды)

Известная проблема заключается в том, что вы должны сообщить своей серверной структуре, какой набор символов вы ожидаете, что строка запроса будет закодирована как --- например, в Tomcat вы должны вызвать request.setEncoding () (или какой-либо аналогичный метод) перед вы вызываете любой из методов request.getParameter (). Нехватка документации по этому вопросу, вероятно, отражает недостаточную осведомленность о проблеме среди многих разработчиков. (Я регулярно спрашиваю собеседников Java, в чем разница между Reader и InputStream, и регулярно получаю пустые взгляды)

Известная проблема заключается в том, что вы должны сообщить своей серверной структуре, какой набор символов вы ожидаете, что строка запроса будет закодирована как --- например, в Tomcat вы должны вызвать request.setEncoding () (или какой-либо аналогичный метод) перед вы вызываете любой из методов request.getParameter (). Нехватка документации по этому вопросу, вероятно, отражает недостаточную осведомленность о проблеме среди многих разработчиков. (Я регулярно спрашиваю собеседников Java, в чем разница между Reader и InputStream, и регулярно получаю пустые взгляды)

9
ответ дан 24 November 2019 в 03:53
поделиться

IRI ( RFC 3987 ) - это последний стандарт, заменяющий стандарты URI / URL ( RFC 3986 и более ранние). URI / URL изначально не поддерживают Unicode (ну, RFC 3986 добавляет положения для будущих протоколов на основе URI / URL для его поддержки, но не обновляет предыдущие RFC). Схема "% uXXXX" является нестандартным расширением, позволяющим использовать Unicode в некоторых ситуациях, но не всеми реализована повсеместно. IRI, с другой стороны, полностью поддерживает Unicode и требует, чтобы текст был закодирован как UTF-8 перед его процентным кодированием.

8
ответ дан 24 November 2019 в 03:53
поделиться

IRI не заменяют URI, потому что только URI (фактически, ASCII) допустимы в некоторых контекстах, включая HTTP.

Вместо этого вы указываете IRI, и он преобразуется в URI при подключении к сети.

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

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