1

質問は、

サーバー(非ajax)への通常のHTTPリクエストでは、クエリ文字列は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か?

4

1 に答える 1

3

ブラウザは、フォームを含むページを表示するために使用するように指示されたものと同じエンコーディングを使用します。これは実際には、HTML ヘッドのメタ エントリで指定されたエンコーディングですが、これは HTTP 応答のヘッダーcontent-typeによって上書きされる可能性があります。content-type

ただし、GET パラメータをデコードするには、サーバー側で正しい URL エンコーディングを考慮する必要もあります。どのサーバーを使用しているかは不明ですが、たとえば Tomcat の場合URIEncoding、要素の属性を<Connector>同じエンコーディングに設定する必要があります。

<Connector ... URIEncoding="gb2312">

背景情報については、こちらの記事も参照してください。

于 2010-04-20T17:17:22.887 に答える