getpost时中文乱码问题解决办法.docVIP

  • 4
  • 0
  • 约3.74千字
  • 约 7页
  • 2017-04-12 发布于四川
  • 举报
getpost时中文乱码问题解决办法

最近遇到一个问题:用get方法传递中文有问题,用post没有问题。 问题简单的描述是这样的: a?href=userGroup.jsp?userGroupName=%=userGroupName%aa/a 这里userGroupName是中文 在userGroup.jsp页面得到的userGroupName却是乱码。 每个页面也都有%@?page?language=java?pageEncoding=GBK?%说明。 后来上网找了一下才知道:pageEncoding这个只对post起作用。get方法提交时,大家可以从地址栏里看到提交的参数,这是因为get方法传递是作为报文头提交的,而pageEncoding对报文头是没有作用的,所以仍然按照?iso8859-1编码,才出现了刚才的乱码问题。而post提交的是form表单的内容,pageEncoding指定了它的编码,所以他会按照指定编码传递。 问题清楚了,下面就来解决它: 由于tomcat的servlet实现中ServletRequest.setCharacterEncoding方法未对HTP报文头的内容进行解码,因此 使用HTTP的GET方法提交的数据将不能正确的解码.解决方案为修改其服务器的配置server.xml文件中对HTTP协议的 Connector配置,加上URIEncoding=GBK属性,配置完成以后可能的内容为 ?Connector?port=8080 maxThreads=150?minSpareThreads=25?maxSpareThreads=75 enableLookups=false?redirectPort=8443?acceptCount=100 debug=0?connectionTimeout=20000? disableUploadTimeout=true?URIEncoding=GBK?/? 大功告成! 2、文章2 表单提交中,method=GET 为默认值,通过url提交过去,形式为:http://localhost:8081/test.jsp?username=bebe0453password=082628submit=%C8%B7%EF%BF%BD%EF%BF%BD 而 method=POST ,则为隐式提交,在浏览器地址栏不会出现参数。 POST更加保密,且提交过去的容量更大,一般都采用POST提交。? ? 3、文章3 在项目中,我们经常遇到需要在jsp页面切换中传递中文字符。这主要有两种方式。 URL方式,例如:http://website/test1.jsp?act=addtype=苹果param=%20D%20B? FORM方式,例如:? ?????????????????????form?name=test??mehtod=post ??????????????????????????????input?type=hidden?name=text2?value=中文 ?????????????????????????????input?type=text?name=text1 ?????????????????????????????input?type=submit?value=submit ????????????????????/form ????我们将针对这两种情况,分别提供中文正确传递的解决方法。 情况1:URL方式 例如:http://website/test1.jsp?act=addtype=苹果param=%20D%20B 一般来说我们很少直接在URL里面把参数写成中文,如例子中的type=苹果这样传递。如果出现这种情况,在我们的接收参数的页面我们只需要做个简单的转换就可以了。? ????????????代码test1.jsp:(主要部分) ???????????%@?page?language=java?import=java.util.*?pageEncoding=gb2312% ???????% ???????????String?type?=?request.getParameter(type); ???????????String?result?=?new?String(type.getBytes(iso-8859-1),?gb2312);?????? ???????????out.println(result);??? ?????% 更普遍的做法,就是对url中的中文字符进行编码,变成类似type=%20D%20B这样的字符。? 代码MyJsp1.jsp: %@?page?language=java?import=java.util.*?pag

文档评论(0)

1亿VIP精品文档

相关文档