
java提交乱码处置惩罚方法:
1、假如提交体式格局为post,想不乱码,只须要在服务器端设置request对象的编码即可,客户端以哪一种编码提交的,服务器端的request对象就以对应的编码吸收,比方客户端是以UTF-8编码提交的,那末服务器端request对象就以UTF-8编码吸收(request.setCharacterEncoding("UTF-8"))
2、假如提交体式格局为get,设置request对象的编码是无效的,request对象还是以默许的ISO8859-1编码吸收数据,因而要想不乱码,只能在吸收到数据后再手工转换,步骤以下:
1).猎取猎取客户端提交上来的数据,获得的是乱码字符串,data="???è?????"
String data = request.getParameter("paramName");
2).查找ISO8859-1码表,获得客户机提交的原始数据的字节数组
byte[] source = data.getBytes("ISO8859-1");
3).经由过程字节数组以指定的编码构建字符串,处置惩罚乱码
data = new String(source, "UTF-8");
经由过程字节数组以指定的编码构建字符串,这里指定的编码是依据客户端那里提交数据时运用的字符编码来定的,假如是GB2312,那末就设置成data = new String(source, "GB2312"),假如是UTF-8,那末就设置成data = new String(source, "UTF-8")
3、客户端想传输数据到服务器,能够经由过程表单提交的情势,也能够经由过程超链接背面加参数的情势,比方:
<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=房明">点击</a>
点击超链接,数据是以get的体式格局传输到服务器的,所以吸收中文数据时也会发生中文乱码问题,而处置惩罚中文乱码问题的体式格局与上述的以get体式格局提交表单中文数据乱码处置惩罚问题的体式格局一致,以下所示:
String name = request.getParameter("name"); name =new String(name.getBytes("ISO8859-1"), "UTF-8");
别的,须要提的一点就是URL地点背面假如跟了中文数据,那末中文参数最好运用URL编码举行处置惩罚,以下所示:
<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=<%=URLEncoder.encode("房明", "UTF-8")%>">点击</a>
更多java学问请关注java基础教程栏目。
以上就是java提交乱码处置惩罚方法的细致内容,更多请关注ki4网别的相干文章!