GET查询字符串是否受content ='text / html影响; charset = gb2312'html元标记属性?

时间:2010-04-20 16:44:34

标签: java html http character-encoding url-encoding

问题是,

在对服务器的常规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 个答案:

答案 0 :(得分:3)

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

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

<Connector ... URIEncoding="gb2312">

另请参阅this article了解更多背景信息。