java.net包中提供了URLEncoder类和URLDcoder类,这两个类提供了两个静态方法encode和decode,分别用于编码和解码。我们对要传递的中文参数进行编码后,就可以发送给服务器,服务器解码后就可以显示中文了。
编码:urlencoder.encode (stuname,“UTF-8”)
传递给服务器:a href="/1.jsp?Stuname%=stuname% "通过/a
decode:URL decoder . decode(Stuname,“UTF-8”)
首先说明我的特殊情况:
在Servlet编程中,经常需要将一些信息返回给浏览器,并通过response对象交给我们的客户端。但是服务器端显示的中文在响应客户端浏览器时是乱码。这主要是因为响应对象的getWriter()方法返回的PrintWriter对象默认使用“ISO-8859-1”字符集编码,将Unicode字符串转换为字节数组。由于ISO8859-1字符集根本不包含中文字符,因此Java会在转换过程中向客户端输出无效的字符编码。所以有乱码。为此,在ServletResponse接口中定义了setCharacterEncoding、setContentType等方法,以指定getWriter方法返回的PrintWriter对象的字符集编码。因此,我们在Servlet程序中调用getWriter方法之前设置这些方法的值。
只要Servlet文件包含响应客户端的信息,就应该写这两句话。最好写第二句,因为它的优先级高,它的设置结果会覆盖setContentType等方法设置的字符编码集。
JSP和Servlet的六种中文乱码处理方法
对于get请求导致的乱码问题,还有另一个解决方案。Tomcat常用作运行Servlet和JSP的容器,Tomcat的默认代码是ISO-8859-1。因此,对于get请求,它传输的数据(URI)将被附加到被访问的资源上,它的代码是Tomcat的默认值。如果修改这个URI的代码,那么所有get请求方法都不会出现乱码,包括上面提到的重定向和超链接。在Tomcat的配置文件server.xml中找到修改Tomcat的端口的地方,并在其中添加URIEncoding属性,并将其设置为与项目中设置的编码相同的值。他们都是UTF-8。
写Servlet和JSP的时候,为了避免乱码,最重要的是采用一致的代码。如果所有代码都一致,乱码肯定不会出现。
以上针对中文乱码的解决方案(建议)都是边肖分享的内容。希望给大家一个参考,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。