解决JavaWeb中文乱码问题的终级方案

做JavaWeb开发时,中文乱码问题是最常见的问题之一,当时情况是这样的:JSP页面显示预定义的中文是没问题的,但是往数据库中插数据时,插入的是乱码,如???,然从数据库中调出数据,页面显示出来的也是乱码问题,开始以为是数据库的字符集的问题,后来将所有的JSP页面字符集设置成UTF-8也还是出现同样问题,因此在能设置字符集的地方都设置了,之后就显示中文字符正常了。

一、首先,是在JSP页面设置字符集:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ page  contentType="text/html;charset=utf-8"%>

<%@ taglib prefix="s" uri="/struts-tags"%>

然后是在struts.xml中设置字符集:

<struts>

<constant name="struts.i18n.encoding" value="utf-8"></constant>

<include file="struts-default.xml" />

<package name="term" extends="struts-default">

....

</struts>

二、接着是在web.xml  里配置

  <!--过滤器,struts2使用的-->

    <filter>

    <filter-name>struts</filter-name>

    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

    <init-param> 

    <param-name>struts.i18n.encoding</param-name> 

    <param-value>UTF-8</param-value>

    </init-param>

三、必须在资源文件中配置,在classes文件夹中新建以下文件和内容:

struts2.properties

此资源文件内容如下:

struts.i18n.reload=true

struts.locale=zh_CN

struts.i18n.encoding=UTF-8

struts.url.includeParams=none

struts.devMode=true

四、在tomcat等服务器中解决字符编码问题,主要解决页面之前传参后中文乱码问题。

Tomcat 处理UTF-8字符时,需要在

Server.xml中添加 URIEncoding="UTF-8"

详细如下:

<Connector port="8080"

 maxThreads="150"

 minSpareThreads="25"

 maxSpareThreads="75"

 enableLookups="false"

 redirectPort="8443"

 acceptCount="100"

 debug="0"

 connectionTimeout="20000"

 disableUploadTimeout="true"

 URIEncoding="UTF-8"/>

五、最后是在Eclipse中设置,如果前面的方法足已解决乱码问题,这步可省去:

Windows->preferences->输入tomcat   (改为)utf-8

Windows->preferences->输入jsp   (改为)utf-8

猜你喜欢

转载自294731013.iteye.com/blog/1504855