javaWeb编码问题
1.调用JSP页面出现乱码:
通过浏览器调用JSP页面,在浏览器中显示中文内容出现乱码。首先确认JSP文件在编辑器中保存为“UTF-8”,然后在JSP页面中添加“<%@ pageEncoding="UTF-8" %>”即可解决中文乱码问题。2.调用Servlet页面显示乱码
通过浏览器调用Servlet,Servlet中通过PrintWriter输出地中文出现乱码。在Servlet使用response对象输出之前,先执行“response.setContentType("text/html;charset=utf-8")”3.POST表单传递中文参数乱码
通过JSP页面、HTML页面或者Servlet中的表单元素提交参数给对应的JSP页面或者Servlet,接收者接收的中文参数值乱码。在接收POST提交的参数之前,使用“request.setCharacterEncoding("utf-8")”设定接收参数的内容使用utf-8编码更好的解决方法:使用过滤器技术。4.URI方式传递参数乱码(就是在URL后面添加参数:http://localhost:8082/app/encode.do?name=靓仔)。
使用表单传递参数,可以通过POST或者GET方式。不使用表单,还可以使用链接方式传递参数,这种传递参数的方法本质上是GET方式传递参数,这种传递参数的值是中文,也会出现乱码(即使是使用了第3点解决乱码的方法),有一个解决方法:修改tomcat配置文件:进入“/conf/server.xml”文件,将以下配置修改(此方法不推荐,因为移植性相当差)<Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443"/>?修改后配置:
<Connector connectionTimeout="20000" port="8082" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>?在发送参数前对参数进行urlEncode,接收时使用java.net.URLDecoder.decode(String, "utf-8")
5.Properties文件乱码
在使用一些类库或者框架时(例如:JSTL Format标记库、Displaytag标记库和Struts框架),为了实现页面内容的国际化,需要编写对应的Properties文件,而Properties文件中的中文内容在显示的时候也会出现乱码。使用Eclipse插件“Properties Editor”:http://propedit.sourceforge/