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/

你可能感兴趣的:(eclipse,tomcat,jsp,浏览器,servlet)