1

问题是,

在对服务器(非 ajax)的常规 HTTP 请求中,通过 GET 方法传递给某个服务器的查询字符串是否受到 this 指定的编码的影响:

<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

浏览器将使用与指示用于显示带有表单的页面相同的编码。这确实可以是content-typeHTML 头部元条目中指定的编码,但这可以被content-typeHTTP 响应中的头部覆盖。

但是,您还需要考虑服务器端的正确 URL 编码来解码 GET 参数。目前尚不清楚您使用的是哪个服务器,但对于例如 Tomcat,您需要将元素的URIEncoding属性设置<Connector>为相同的编码。

<Connector ... URIEncoding="gb2312">

另请参阅本文了解更多背景信息。

于 2010-04-20T17:17:22.887 回答