Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是受内容影响的GET查询字符串=';text/html;字符集=gb2312';html元标记属性?_Java_Html_Http_Character Encoding_Url Encoding - Fatal编程技术网

Java 是受内容影响的GET查询字符串=';text/html;字符集=gb2312';html元标记属性?

Java 是受内容影响的GET查询字符串=';text/html;字符集=gb2312';html元标记属性?,java,html,http,character-encoding,url-encoding,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'

问题是,

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


当用户单击
提交
按钮时,值
someNon-ASCII_value1
的编码是什么?

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

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

<Connector ... URIEncoding="gb2312">


有关更多背景信息,请参见。

何时指定编码?指定的GET字符串在哪里?谢谢。通过运行简单的Servlet示例,我确保了
meta
标记的
content
属性中的编码是用来对get请求的查询字符串进行编码的。很抱歉,JAVA服务器有没有办法知道客户机的字符编码?(即,通过某个请求头???)是的,.from javadoc:“返回此请求正文中使用的字符编码的名称”,但正如您所知,GET请求没有正文,只有标头。我试过了,当然返回
null
!顺便说一句,我希望如果我知道getCharacterEncoding不返回null的场景!!!!如果您使用
POST
,它确实不是
null
。对于GET,您依赖于您在初始页面中指定的响应编码和在服务器配置中指定的URI编码(两者应该相同)。