jsp到mysql中文乱码
hibernate和struts2写的程序1.从mysql命令行输入中文,不乱码2.从jsp页面读取数据库,不乱码3.从jsp页面向数据库添加数据,乱码????????m...
hibernate和struts2写的程序
1.从mysql命令行输入中文,不乱码
2.从jsp页面读取数据库,不乱码
3.从jsp页面向数据库添加数据,乱码????????
mysql和jsp页面的编码方式都是gbk
基于以上问题,求解 展开
1.从mysql命令行输入中文,不乱码
2.从jsp页面读取数据库,不乱码
3.从jsp页面向数据库添加数据,乱码????????
mysql和jsp页面的编码方式都是gbk
基于以上问题,求解 展开
6个回答
展开全部
看你的样子,需要做三点
1.像一楼一样连接数据库时设置编码
2.虽然你的jsp页面设置了gbk,但是浏览器没有设置,需要设置浏览器编码方式,注意浏览器的编码方式设置成utf-8,因为浏览器没有gbk格式
<%@ page contentType="text/html; charset=utf-8"%>
3.设置一个过滤器
package org.jb.common.filter;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
public class SetCharacterEncodingFilter implements Filter {
protected FilterConfig filterConfig;
protected String encodingName;
protected boolean enable;
public SetCharacterEncodingFilter() {
this.encodingName = "GBK";
this.enable = false;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("GBK");
chain.doFilter(request, response);
}
public void destroy() {
}
}
web.xml配置加
<filter>
<filter-name>encodefilter</filter-name>
<filter-class>org.jb.common.filter.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodefilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
OK,成功,所以说对于乱码问题要从头到尾都编码一致,包括数据库,连接数据库,jsp页面,浏览器,浏览器-jsp-antion之间传值时的编码即过滤器
1.像一楼一样连接数据库时设置编码
2.虽然你的jsp页面设置了gbk,但是浏览器没有设置,需要设置浏览器编码方式,注意浏览器的编码方式设置成utf-8,因为浏览器没有gbk格式
<%@ page contentType="text/html; charset=utf-8"%>
3.设置一个过滤器
package org.jb.common.filter;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
public class SetCharacterEncodingFilter implements Filter {
protected FilterConfig filterConfig;
protected String encodingName;
protected boolean enable;
public SetCharacterEncodingFilter() {
this.encodingName = "GBK";
this.enable = false;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("GBK");
chain.doFilter(request, response);
}
public void destroy() {
}
}
web.xml配置加
<filter>
<filter-name>encodefilter</filter-name>
<filter-class>org.jb.common.filter.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodefilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
OK,成功,所以说对于乱码问题要从头到尾都编码一致,包括数据库,连接数据库,jsp页面,浏览器,浏览器-jsp-antion之间传值时的编码即过滤器
展开全部
String cjdw = new String(req.getParameter("cjdw").getBytes("ISO8859_1")); 这么写,接收参数就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在安装mysql的时候有一步是指定mysql的字符集,你选中gb2312或者utf-8即可。。。
呵呵。。。希望对你有用。。。。
呵呵。。。希望对你有用。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你最好是用UTF-8 这个比较权威 在你后台类里获取的时候 转码 就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加数据时乱码,那看看你执行的sql语句是不是就已经是乱码了呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询