问题是,
在对服务器的常规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
的编码是什么?
答案 0 :(得分:3)
浏览器将使用与指示用于显示带有表单的页面相同的编码。这确实可以是HTML头中元content-type
条目中指定的编码,但这可以被HTTP响应中的content-type
标头覆盖。
然而,您还需要考虑服务器端的正确URL编码来解码GET参数。目前还不清楚您正在使用哪个服务器,但是在Tomcat的情况下,您需要将URIEncoding
元素的<Connector>
属性设置为相同的编码。
<Connector ... URIEncoding="gb2312">
另请参阅this article了解更多背景信息。