request请求post、get方式中文乱码处理
2018-03-13 15:19
393 查看
第一种方式:获取以后自己转码
String name = request.getParameter("name");
String age = request.getParameter("age");
String aaa = request.getParameter("aaa");
name = new String(name.getBytes("UTF-8"),"UTF-8");
age = new String(age.getBytes("ISO-8859-1"),"UTF-8");
aaa = new String(aaa.getBytes("ISO-8859-1"),"UTF-8");System.out.println("-----------"+name); System.out.println("-----------"+age); System.out.println("-----------"+aaa);第二种:在获取之前设置编码 //给request设置编码为UTF-8
//必须在调用所有getParameter之前
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String age = request.getParameter("age");
String aaa = request.getParameter("aaa");
1.利用ISO-8859-1转码的方式:public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//在Get方式请求中request.setCharacterEncoding("UTF-8")不在起作用
//request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(name);
}
2.
GET参数不在请求正文中,而是在URL中。所以不能使用request的setCharacterEncodng()来设置GET参数的编码。
处理GET参数编码可以有两种方式:第一种是设置<Connector>元素的URIEncoding属性的值为UTF-8。即conf\server.xml中的<Connector>元素的URIEncoding属性。
一旦设置了这个属性,那么对于GET参数就直接是UTF-8编码的了。但是,<Connector>元素来说,对整个Tomcat都是有效的!
3.
Ø 第三种JavaScript对超链接做URL编码
处理这个问题的办法是把GET请求中的参数使用JavaScript做URL编码,URL编码后的内容就不再是中文了,这样IE6也就不会丢失字节了。<a href="#" onclick="click1()">ff</a>
<script type="text/javascript">
function click1(){
var path = encodeURI(encodeURI("servlet/RequestDemo?namea=任亮"));
location.href = path;
}
</script>
String name = request.getParameter("name");
String age = request.getParameter("age");
String aaa = request.getParameter("aaa");
name = new String(name.getBytes("UTF-8"),"UTF-8");
age = new String(age.getBytes("ISO-8859-1"),"UTF-8");
aaa = new String(aaa.getBytes("ISO-8859-1"),"UTF-8");System.out.println("-----------"+name); System.out.println("-----------"+age); System.out.println("-----------"+aaa);第二种:在获取之前设置编码 //给request设置编码为UTF-8
//必须在调用所有getParameter之前
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String age = request.getParameter("age");
String aaa = request.getParameter("aaa");
System.out.println("-----------"+name); System.out.println("-----------"+age); System.out.println("-----------"+aaa);Get()方式
1.利用ISO-8859-1转码的方式:public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//在Get方式请求中request.setCharacterEncoding("UTF-8")不在起作用
//request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(name);
}
2.
GET参数不在请求正文中,而是在URL中。所以不能使用request的setCharacterEncodng()来设置GET参数的编码。
处理GET参数编码可以有两种方式:第一种是设置<Connector>元素的URIEncoding属性的值为UTF-8。即conf\server.xml中的<Connector>元素的URIEncoding属性。
一旦设置了这个属性,那么对于GET参数就直接是UTF-8编码的了。但是,<Connector>元素来说,对整个Tomcat都是有效的!
3.
Ø 第三种JavaScript对超链接做URL编码
处理这个问题的办法是把GET请求中的参数使用JavaScript做URL编码,URL编码后的内容就不再是中文了,这样IE6也就不会丢失字节了。<a href="#" onclick="click1()">ff</a>
<script type="text/javascript">
function click1(){
var path = encodeURI(encodeURI("servlet/RequestDemo?namea=任亮"));
location.href = path;
}
</script>
相关文章推荐
- request的中文乱码get、post处理方式
- post方式与get方式提交到Jsp页面中文乱码的处理
- 总结:SpringMVC 中 GET 和 POST 方式请求中的中文乱码问题
- Web页面处理post和get请求的乱码的方式
- JSP中解决中文乱码问题 对于post有效 对于get请求方式无效。
- GBK,UTF-8,和ISO8859-1编码区别与get,post请求中文乱码处理
- 如何解决POST请求中文乱码问题,GET的又如何处理呢?
- springmvc 处理http get/post请求中文乱码的问题
- get post 中文请求乱码解决方式
- request的get请求和post请求的中文乱码问题
- Get Post请求方式的乱码问题处理
- ASIHTTPRequest实现对PUT,DELETE,POST,GET请求方式的处理
- JSP页面post和get方式提交请求,请求参数出现中文乱码
- 解决servlet中文乱码问题及get、post请求方式的讲解
- Get请求中文乱码的几种解决方式
- get和post方式提交中文乱码问题
- post、get提交方式,超链接中文乱码
- Spring Tomcat Post Get 请求参数有中文时出现乱码或+号变空格等关于编码的问题
- 解决中文乱码的filter(包括get和post提交两种方式)
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案