表单提交到ServletdoPost():resquest.sendCharacterCode("GBK");//拼写可能有误String Name = resquest.getParameter("Name");//Name是乱码
解决方案 »
- 请大家帮我看一下,运行Hibernate时报异常,该怎么处理?谢谢啦!
- 请问在PL/SQL里怎么看oracle自带的虚拟表的名字,像有的虚拟表叫dual 有的又是其他的名字 谢谢
- 求数据备份与还原的实现方法
- SmartUpload文件下载问题,请高手帮看看什么问题,急!!!!!!!!!!!
- 关于javacript 中src路径的问题
- ?????动态打印列表数据????
- 如何让url参数值随机变化
- 请问一个问题,急,在线等
- 有没有办法用sql知道总共多少字段吗?
- 请教高手,在TOMCAT下运行SERVLET需要怎么配置?在线等。
- spring加载时报异常 小弟急用啊
- 如何将 Session从一个Servlet传递到另一个Servlet中
request.setCharacterEncoding只对post管用
编码不一致
表单提交一般不会出现乱码的问题
你看一下你的工程编码和你的jsp页面的编码是否一致,不一致改过来就行了,就不会出现乱码了
如何还不行的话,就String name=new String(request.getParameter("Name").getBytes("ISO-8859-1"),"gbk");
赞同 。 !!!!!!!!!!
如果表单的提交方式为get的话
tomcat根据默认的配置是按照Iso8859-1来读取的 。
所以要进行如下操作。
String ISO_XXX = request.getParameter("XXX");String XXX = new String(ISO***.getBytes("ISO8859-1"),"GB2312");System.out.println(XXX);
或者在tomcat的config目录下的server.xml进行配置。在如下标签中添加一个useBodyEncodingForURI="true"属性
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
即改为:
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true" />因为: request.setCharacterEncoding只能影响到对于put请求所传递过来参数的处理, 并不能影响到get方式传递数据的处理。加上上边的属性后,request.setCharacterEncoding 也能够影响到服务器对于get方式传递数据的处理