jsp中request接收中文参数乱码问题解决办法
在利用表单提交数据时发现,获得的中文参数会发生乱码,解决方法如下:
<body>
<%
String s=request.getParameter("uname");
s = new String(s.getBytes("ISO-8859-1"),"utf-8");//解决乱码问题
%>
<%=s %>
</body>
s = new String(s.getBytes("ISO-8859-1"),"utf-8");此程序的作用是将接收到的的参数先转化为字节码文件,然后进行utf-8编码。
防止中文乱码的总结:
1、对于同一个应用,最好统一编码,推荐为UTF-8,当然GBK也可以。
2、正确设置JSP的pageEncoding="UTF-8"
3、在所有的JSP/Servlet中设置contentType="text/html;charset=UTF-8"或response.setCharacterEncoding("UTF-8"),从而间接实现对浏览器编码的设置。
4、对于非表单提交的get或url请求,可以修改Tomcat的默认配置,推荐将useBodyEncodingForURI参数设置为true,也可以将URIEncoding参数设置为 UTF-8(有可能影响其他应用,所以不推荐)。或者用下面的方法,在接收数据时处理:
request.getParameter("userID"),得到userID的值
request.getParameter("userID").trim()将这个值去掉两边的空格
request.getParameter("userID").trim().getBytes("ISO-8859-1"))将这个String用ISO-8859-1编码成一个字节数祖
new String(request.getParameter("userID").trim().getBytes("ISO-8859-1"),"utf-8")将刚才的字节数祖传进string的构造函数按照"utf-8"编码创建一个string对象。
5.使用URLEncoder的方法
传参前用:
//使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式
String username_encoder = URLEncoder.encode(username,"UTF-8");
接参数后显示用:
//使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码
String username_decoder = URLDecoder.decode(request.getParameter("username"),"UTF-8");
转载于:https://blog.51cto.com/12222886/1898132
上一篇: 一些博客代码复制后无法运行的bug处理
下一篇: MyBatis 的关联映射
推荐阅读
-
通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
-
JSP利用过滤器解决request中文乱码问题
-
jsp中 ajax的get请求的中文乱码问题的解决方法
-
JSP中js传递和解析URL参数以及中文转码和解码问题
-
SpringMVC关于接收Form表单POST请求时,中文参数乱码的问题
-
Ireport生成pdf格式的报表中的中文乱码问题解决办法
-
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
-
mySQL中建表的中文字段与中文乱码问题解决办法
-
jsp和servlet操作mysql中文乱码问题的解决办法
-
的中文乱码问题">
SpringMVC的controller层接收来自jsp页面通过
备案号:粤ICP备20058927号
© Copyright © 2020-2022 www.superweb999.com 程序员文章站.