这两天在整合三大框架时遇上Struts2的URL转发乱码问题,搞了很久也上网查了很多资料,写了过滤器,改过配置,全部都没用。只能用最简单暴力的一种,手动转换乱码。因为编辑器一开始默认的编码是ISO-8859-1,所以要将ISO-8859-1转换成utf-8。
一般乱码问题,先检验数据库的编码是否对应,一般安装数据库的时候设定了默认编码,如果没有设定为utf-8,添加中文时可能会出现乱码---只能修改配置或重装数据库(这不是本博文的重点)。检验数据库后,再检验页面编码是否一致,若还不能解决乱码问题,就试着在Action层添加中文测试,如果没有问题,那就是Strust2转发的时候变成了乱码。解决办法很暴力很简单。
例:
在Action层:
public String execute() throws UnsupportedEncodingException
{
Title u=new Title();
u.setName(new String(name.getBytes("ISO-8859-1"),"utf-8"));
u.setType(new String(type.getBytes("ISO-8859-1"),"utf-8"));
u.setCondi(new String(condi.getBytes("ISO-8859-1"),"utf-8"));
u.setIntro(new String(intro.getBytes("ISO-8859-1"),"utf-8"));
u.setOrigin(new String(origin.getBytes("ISO-8859-1"),"utf-8"));
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
u.setDate(df.format(new Date()));
u.setGname("陈老师");
u.setIdea("这个课题灰常好");
s.setTitle_ID(u);
tmanager.add(u);
smanager.update(s);
return "success";
}
不用经过大脑思考,不用理解其中的转发机制,轻松解决乱码、