Java Web项目中,解决中文乱码方法总结如下
第一种情况:调用jsp页面中文显示乱码
问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码。
解决方法:首先确认本jsp在编辑器中保存文件内容时,使用的是utf-8的编码格式,然后在jsp页面的开始处添加<%@ pageEncoding=\"utf-8\"%>就可以解决这种中文乱码问题
第二种情况:调用servlet页面显示乱码
问题描述:通过浏览器调用servlet,servlet在浏览器中显示的内容出现乱码。
解决方法:在servlet使用response对象输出前,先执行response.setContentType(\"text/html;charset=utf-8\");设定输出内容的编码为utf-8。
第三种情况:post表单传递参数乱码
问题描述:通过jsp,html,或servlet中的表单元素把参数提交给对应的jsp或者servlet时,在接收的jsp或servlet中接收到的参数中文显示乱码。
例如:
提交jsp代码如下:
<%@ page language=\"java\" pageEncoding=\"utf-8\"%> <html> <head> <title>输入表单</title> </head> <body> <form id=\"inputForm\" name=\"inputForm\" method=\"post\" action=\"display.jsp\"> 用户名:<input type=\"text\" name=\"username\"/><br/> 密 码 :<input type=\"password\" name=\"password\"/><br/> <input type=\"submit\" name=\"submit\" value=\"提交\"/> </form> </body> </html>
接收参数的jsp代码如下:
<% @ page language=\"java\" pageEncoding=\"utf-8\"%> <html> <head> <tilte>接收表单</title> </head> <body> <% 在这里插入 request.setCharacterEncoding(\"utf-8\"); %> 用户名:<%=request.getParameter(\"username\")%><br/> 密 码:<%=request.getParameter(\"password\")%><br/> </body> </html>
解决方法:在接收post提交的参数前,使用request.setCharacterEncoding(\"utf-8\")设定接收参数的内容格式为utf-8编码。见接收表单中的插入内容即可。当然这种乱码问题最好使用中文过滤器的方法最好。
第四种情况:URI方式传递参数乱码
问题描述:使用表单传递参数,可以通过post或get方式,不适用表单,还可以使用链接方式传递参数,这种传递参数方式本质上就是get方式传递参数,这种方式中传递的参数出现中文时也可能出现乱码。
如:
<Connector port=\"8080\" protocol=\"HTTP/1.1\" maxThreads=\"150\" connectionTimeout=\"200000\" redirecPort=\"8443\"/>
修改后内容:
<Connector port=\"8080\" protocol=\"HTTP/1.1\" maxThreads=\"150\" connectionTimeout=\"200000\" redirecPort=\"8443\" URIEncoding=\"utf-8\"/>
这样就可以解决这种类型的乱码问题。
第五种情况:
问题描述:在使用一些类库或者框架时,为了实现页面内容国际化,需要编写对应的properties文件。而properties文件中的中文内容在显示的时候也会出现乱码。
解决方法:这个乱码问题可以通过jdk中的native2ascii工具解决。使用如下命令:
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文地址:https://www.stayed.cn/item/3767
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我