На GET Query String влияет content = 'text / html; charset = gb2312 'атрибут метатега html? - PullRequest
1 голос
/ 20 апреля 2010

Вопрос в том,

В обычном HTTP-запросе к серверу (не-ajax), передается ли строка запроса методом GET на какой-либо сервер, зависит от кодировки, указанной в этом:

<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>

Если ответ нет, Как определить схему кодирования для параметров метода GET?

Пример: Если у меня есть HTML, который выглядит:

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
</head>
<body>
 <form method="GET" action="/some/server">
  <input type="text" name="name1" value="someNon-ASCII_value1" />
  <input type="submit" />
 </form>
</body>
<html>

Когда пользователь нажимает кнопку submit, какова будет кодировка значения someNon-ASCII_value1?

1 Ответ

3 голосов
/ 20 апреля 2010

Браузер будет использовать ту же кодировку, которая была указана для отображения страницы с формой. Это действительно может быть кодировка, указанная в записи meta content-type в заголовке HTML, но она может быть переопределена заголовком content-type в ответе HTTP.

Однако вам также необходимо учитывать правильную кодировку URL на стороне сервера для декодирования параметров GET. Неясно, какой сервер вы используете, но в случае, например, Tomcat вам нужно установить для атрибута URIEncoding элемента <Connector> ту же кодировку.

<Connector ... URIEncoding="gb2312">

Также см. эту статью для получения дополнительной информации.

...