jsp 查数据库中文乱码问题. 记得以前是改的tomcat 配置文件,时间太长记不得是哪个文件了,求解,谢谢 .. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 response.setContentType("text/html;charset=GB18030");request.setCharacterEncoding("GB18030"); 要看数据库中有没有乱码。没有的话,看下jsp里面的code方式,最好改为gb2312。 1、servlet问题出现中文乱码,解决的根本之道是自己写一个过滤器,不需要在servlet中用java硬编码来手动设置编码:response.setContentType("text/html;charset=GB18030");request.setCharacterEncoding("GB18030");不需要这样的,这不是解决之道。过滤器很简单,给你一个你参考一下import javax.servlet.*; import java.io.IOException; /** * 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题 */ public class CharacterEncodingFilter implements Filter { protected FilterConfig filterConfig = null; protected String encoding = ""; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if(encoding != null) servletRequest.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { filterConfig = null; encoding = null; } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); } } 页面发到servlet中的数据如果出现中文乱码可以用下面方法解决:response.setContentType("text/html;charset=GB18030");request.setCharacterEncoding("GB18030");如果不行再用下面的方法:String name = request.getParament("name");name = new String(name.getBytes("iso-8859-1"); 1、如果是你 要该tomcat:\Tomcat-6.0.18\conf\server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URLEncoding="utf-8" />2、但是 一般不用改这里 。。只要你的JSP编码 JAVA编码和数据库编码一致 应该不会出现中文乱码 以前是在 myeclipse6.0 里做的项目,过滤器什么的都试过,不行,改了tomcat 目录里的一个配置文件就好了 .现在在 myeclipse 8.5 里导入项目,试了一下,发现啥问题都没有,哈,谢谢ls 各位了 . 如何从Action返回数据到页面中的select控件? 如何操作table中的tr 如何使别人能访问到我本机上的WEB项目(网页) 如何制作ocx插件安装程序 大家来看看来呀!那里错了哦 我的java applet小程序不能在腾讯的TT上显示!!! 上传文件总是报一个一场,郁闷啊 IE 浏览器回退按钮禁止 How to 整合 JBuilder9与JRun3.1 ? 江湖救急啊 !!!!! [求助]页面一跳转就报错 . org.apache.jasper.JasperException: Unable to compile class for JSP
request.setCharacterEncoding("GB18030");
request.setCharacterEncoding("GB18030");不需要这样的,这不是解决之道。
过滤器很简单,给你一个你参考一下import javax.servlet.*;
import java.io.IOException;
/**
* 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题
*/
public class CharacterEncodingFilter
implements Filter
{
protected FilterConfig filterConfig = null;
protected String encoding = "";
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
if(encoding != null)
servletRequest.setCharacterEncoding(encoding);
filterChain.doFilter(servletRequest, servletResponse);
}
public void destroy()
{
filterConfig = null;
encoding = null;
}
public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
}
}
response.setContentType("text/html;charset=GB18030");
request.setCharacterEncoding("GB18030");
如果不行再用下面的方法:
String name = request.getParament("name");
name = new String(name.getBytes("iso-8859-1");
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URLEncoding="utf-8" />
2、但是 一般不用改这里 。。只要你的JSP编码 JAVA编码和数据库编码一致 应该不会出现中文乱码
现在在 myeclipse 8.5 里导入项目,试了一下,发现啥问题都没有,哈,谢谢ls 各位了 .