如题 可能是什么问题
解决方案 »
- 用myeclipse生成帮助文档时出现错误 生成的是struts2.2.3.1的文档
- struts tab页面跳转问题
- 怎样在ssh的hibernateTemplate中分页啊??????
- 每次请求数据都会在重复出现一遍
- Tomcat 本地部署项目 访问本地网站比较慢!但是在同事的机器上非常正常
- dreamweaver里的可折叠面板粘贴到eclipse里需要改什么?
- 求助!!获取来源网址问题
- 网页中如何保存对象(比如说从request中得到的数据Vector)?
- 请教各位大哥:在jsp中能不能在服务器中打开 IE 浏览器访问其他地址
- jsp中如何屏蔽insert数据库字段值含有 ' 的问题? !!!!
- 小问题!急!在线等
- select取值的问题。
if(conent==null){
return" ";
}
return new String(conent).getBytes("ISO-8859-1"),"GBK");
}
}
public class DoFilter implements Filter
{ public void destroy() {
} public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException { arg1.setCharacterEncoding("GBK");
arg2.doFilter(arg0, arg1); } public void init(FilterConfig arg0) throws ServletException {
} } 在web。xml中配置: <!-- 过滤器 -->
<filter>
<filter-name>encodingFilter </filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class>
<init-param>
<param-name>encoding </param-name>
<param-value>UTF-8 </param-value>
</init-param>
<init-param>
<param-name>forceEncoding </param-name>
<param-value>true </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter </filter-name>
<url-pattern>*.jsp </url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter </filter-name>
<url-pattern>*.do </url-pattern>
</filter-mapping>
如果涉及到数据库,就要修改数据的默认编码方式,mysql的默认编码好像是latin1
基本的调试可以看看究竟是什么地方开始乱码,是获取页面数据乱码还是查询数据库乱码
如果是jsp页面
1:则首先看你的jsp页面的编码是否设置(就是pageEncoding="utf-8");
2:jsp页面post方式接收参数如果有中文,加上一句request.setCharacterEncoding(“GBK”);
3:如果是get方式提交的,new String( request.getParameter("name").getBytes("iso8859-1"),"gbK");
这三个是最通用的!试试吧!
上面的3楼解决了3:问题;而4楼的过滤器解决了2:问题!
自己看吧!
写个过滤器处理中文
如果是jsp页面
1:则首先看你的jsp页面的编码是否设置(就是pageEncoding="utf-8");
2:jsp页面post方式接收参数如果有中文,加上一句request.setCharacterEncoding(“GBK”);
3:如果是get方式提交的,new String( request.getParameter("name").getBytes("iso8859-1"),"gbK
1、数据库本身存储就是编码就是不支持中文的,需要正确数据库
2、Http Request和Response的ContentType编码设置不支持中文,通过以上说的过滤Filter可以解决
3、Jsp和Html的编码方式也会影响到显示的结果,也需要通过ContentType来设置
过滤器要加.. 而且数据库编码要改成UTF-8,. hibernate.cfg.xml要加上这一句.useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
jdbc:mysql://localhost:3306/zshome?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true刚才我写了一个过滤器.
public class UTF8 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("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
} public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
WEB.XML.在里面配置这一段. <filter>
<filter-name>utf8</filter-name>
<filter-class>com.gdp2008.common.UTF8</filter-class>
</filter> <filter-mapping>
<filter-name>utf8</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
数据库改编码. 点击表名右击->Design Table ->options ->character set:utf-8 就OK了。