JSP乱码问题

lin_eric 2009-04-13 11:01:20
本人现在在做一个商务网站,之前都是用的过滤器来解决中文乱码的问题的,而且都是成功的,但昨天写了一个新的小模块之后,这个小模块存进数据库里的中文都是乱码的,而其他的模块都还能正常的存取中文的,请各位大哥大姐们给个解决的方法啊!过滤器代码如下:
public class CharacterFilter implements Filter {

public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}

}
...全文
148 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2009-04-20
  • 打赏
  • 举报
回复
用struts2很方便
lin_eric 2009-04-14
  • 打赏
  • 举报
回复
啊!!终于解决了!!原来是 contentType="text/html; charset=UTF-8"这里出了问题啊!!
rihce 2009-04-13
  • 打赏
  • 举报
回复
我感觉、出乱码 就是字符编码之间不能转换过来。所以,最好前后台用一致的字符编码。
rihce 2009-04-13
  • 打赏
  • 举报
回复
有form表单么 如果有 是不是 form表单里的method要设置成post。我记得 以前 我也遇到过类似的问题,貌似 就是这样改过来了。
Defonds 2009-04-13
  • 打赏
  • 举报
回复
jsp版AJAX下拉条级联

这个项目里有关于filter的使用、配置
yangkaixin1226 2009-04-13
  • 打赏
  • 举报
回复
是不是数据库的字符问题,建议楼主用UTF-8
lin_eric 2009-04-13
  • 打赏
  • 举报
回复
我在接收参数之前用request.setCharacterEncoding("gb2312");处理了一下,还是不行啊!
cnhuai 2009-04-13
  • 打赏
  • 举报
回复
由于Java默认的编码方式是UNICODE,所以用中文易出问题,常用解决:
String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

utf-8解决JSP中文乱码问题,在页面的开始处加:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%request.setCharacterEncoding("UTF-8");%>

如果仍不能解决问题,还需要这样处理一下:
String msg = request.getParameter("message");
String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");out.println(st);
kampan 2009-04-13
  • 打赏
  • 举报
回复
楼主怎么不用的Struts2自带的过滤器
great1681 2009-04-13
  • 打赏
  • 举报
回复
建议楼主:
检查这个模块的相关请求
是否经过了你这个filter的过滤~~
laorer 2009-04-13
  • 打赏
  • 举报
回复
你要考虑数据库是什么编码,另外,建议最好还是所有的都一致使用 utf8
guolimin1118 2009-04-13
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 ben0759 的回复:]
楼主查看一下自己是什么数据库,每个数据库底层编码都不一样
再检查一下tomcat,在tomcat配置编码,如果tomcat是utf-8,这样你配置了filter还是会乱码的
在filter里面做一些测试,看看你的数据有没有通过你写的filter。
把gb2312改成gbk,有些服务器对gb2312没办法解析的。
[/Quote]
有可能是这个问题哦
mike_24 2009-04-13
  • 打赏
  • 举报
回复
输入的用GBK;

数据库底层编码用utf8
ben0759 2009-04-13
  • 打赏
  • 举报
回复
楼主查看一下自己是什么数据库,每个数据库底层编码都不一样
再检查一下tomcat,在tomcat配置编码,如果tomcat是utf-8,这样你配置了filter还是会乱码的
在filter里面做一些测试,看看你的数据有没有通过你写的filter。
把gb2312改成gbk,有些服务器对gb2312没办法解析的。
lin_eric 2009-04-13
  • 打赏
  • 举报
回复
我把TOMCAT里面那个过滤器拷过来用也还是不行啊! 存的时候也都是通过servlet存进去的啊!
liangcaijiu 2009-04-13
  • 打赏
  • 举报
回复
可能是过滤器没有处理呢
javadaydayup 2009-04-13
  • 打赏
  • 举报
回复
页面,action,数据库编码,以及数据库连接时的编码都采用统一采用utf-8一般OK
moolf 2009-04-13
  • 打赏
  • 举报
回复
乱码是最常见的问题 建议楼至检查一下 都页面到servlet到DB一套下来看看编码是不是统一的 如果是的话 应该不会出现乱码
zm_hs 2009-04-13
  • 打赏
  • 举报
回复
建议使用utf-8
hundsun_2008 2009-04-13
  • 打赏
  • 举报
回复
建议使用gb2312或utf-8
加载更多回复(7)

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧