中文乱码问题的解决方案,中文乱码的原因,以及如何避免

中文乱码问题的解决方案,中文乱码的原因,以及如何避免,解决中文乱码的几种解决方法(推荐)

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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: