1.首先,设置数据库支持中文gb2312/gbk。
具体方法:
打开mySQL文件夹,修改my.ini配置文件。
[client]
port=3306
default-character-set=gb2312
以及
[mysqld]下的
default-character-set=gb2312
修改,保存,重启。若设为System服务,可以在控制面板-管理工具-服务中找到mySQL服务,重启。
2.保证Web项目所在容器支持中文,个人认为是将Tomcat改为支持gb2312.
打开文件夹,找到server.xml修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
reloadable="true" redirectPort="8443" reloadable="true" URIEncoding="gb2312" />
rereloadable="true"设置热启动,URIEncoding="gb2312"设置字符
3.前台页面
<%@ page language="java" pageEncoding="gb2312"%>
4.添加过滤器
本人将前三种都修改,重新启动,数据库的插入依然显示???,之后使用Filter类成功。
据称过滤类比较稳定,推荐使用。
具体过程,网上找的方法
然后我们在web.xml中加一些配置,就可以了,配置如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>javawebstudio.struts_db.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
放在web.xml的合适位置。一般在最后,<jsp-config>标签之前(如果有的话)放在<servlet>之前,否则报错
经过以上步骤,JSP和mysql的中文显示及插入就都正常了。在STRUTS中也正常。