尝试一下在
“DataOutputStream out = new DataOutputStream(response.getOutputStream());”
之前先设置对该流对象的处理字:
response.setContentType("text/html;charset=gb2312")
“DataOutputStream out = new DataOutputStream(response.getOutputStream());”
之前先设置对该流对象的处理字:
response.setContentType("text/html;charset=gb2312")
解决方案 »
- 同一个IP不同端口,两个应用的session会冲突,如何解决
- The requested resource (/JSPExample/registerServlet) is not available
- 配置了过滤器以后,无法访问登录用的servlet怎么办?
- Hibernate配置问题
- J2EE异常框架
- DWR + Spring 问题
- tomcat5下创建datasource然后连接它出现的问题
- 怎样用Java做ASP组件(COM DLL)供ASP使用?
- 天下武功唯快不破-Jeecg极速开发平台
- java.lang.ExceptionInInitializerError
- hibernate中1:N关系,如何设计主,外键的字段类型?
- 请问这样给Action传参数行吗?
具体办法我也没找到,不过我们使用propertys文件标签进行中英文转换。
期待其他人给各更好的办法。
(要前后台都统一使用一种编码;才不会是乱码。)
注意:如果你的数据库中的数据编码不是UTF-8;请将其转化成UTF-8编码就可以了。
如果不想改变数据库中数据原有的编码:可以在读取数据时转化成UTF-8编码;写入数据时将UTF-8编码数据转换成数据库中数据的编码,就可以了。转码方法:new String(data.getBytes("gb2312"),"UTF-8");new String(data.getBytes("UTF-8"),"gb2312");
<%@ page contentType="text/html; charset=UTF-8" errorPage="/errors/error.jsp"%>
public class EncodingFilter implements Filter {
Logger log = Logger.getLogger(HibernateFilter.class);
private String encode = "UTF-8"; public void init(FilterConfig config) {
this.encode = config.getInitParameter("encode");
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) {
try {
request.setCharacterEncoding(this.encode);
response.setContentType("text/html;charset=" + encode);
chain.doFilter(request, response);
} catch (Exception e) {
log.error("Error in do filter." + e);
e.printStackTrace();
} finally {
try {
HibernateSessionFactory.closeSession();
} catch (Exception ex) {
log.error("Error in closing session.", ex);
}
}
} public void destroy() {
}
}