当前位置:  编程技术>java/j2ee

jsp和servlet操作mysql中文乱码问题的解决办法

    来源: 互联网  发布时间:2014-10-20

    本文导语:  首先看是从什么地方开始出现的乱码,只要统一编码,就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明:1、如果乱码是从jsp页面出现的,jsp头部页面加上:在head标签中加上标签。 2、如果乱码是在servlet中出现的...

首先看是从什么地方开始出现的乱码,只要统一编码,就不会出现乱码,下面以uft-8(个人认为最好)为例,详细说明:

1、如果乱码是从jsp页面出现的,jsp头部页面加上:

在head标签中加上标签。

2、如果乱码是在servlet中出现的,则有两种方法:
一种是在每个servlet中doget和doPost方法头部加上
request.setCharacterEncoding(“UTF-8″);
第二种最保险,一劳永逸,是专门写一个过滤器类,也称国际化,类名为SetCharacterEncodingFilter内容如下

代码如下:

package com.sharep.filter;//包名
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacterEncodingFilter implements Filter
{
 protected String encoding = null;
 protected FilterConfig filterConfig = null;
 protected boolean ignore = true;
 public void init(FilterConfig filterConfig) throws ServletException
 {
  this.filterConfig = filterConfig;
  this.encoding = filterConfig.getInitParameter("encoding");
  String value = filterConfig.getInitParameter("ignore");
  if (value == null)
   this.ignore = true;
  else if (value.equalsIgnoreCase("true"))
   this.ignore = true;
  else
   this.ignore = false;
 }
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException
 {

  if (ignore || (request.getCharacterEncoding() == null))
  {
   String encoding = selectEncoding(request);
   if (encoding != null)
    request.setCharacterEncoding(encoding);
  }
  chain.doFilter(request, response);
 }
 public void destroy()
 {
  this.encoding = null;
  this.filterConfig = null;
 }
 protected String selectEncoding(ServletRequest request)
 {
  return (this.encoding);
 }
}

然后在web-inf的web.xml中加上如下代码:

代码如下:


  SetCharacterEncoding
  com.young.filter.SetCharacterEncodingFilter//注意这里是类名,要有完整包名
  
   encoding
   UTF-8
  
 

 
  SetCharacterEncoding
  /*
 

这样就搞定了

3、如果还是有乱码,就是mysql数据库的问题了

1)保证建立数据库的时候数据库编码选择的是utf-8,最好在每个表中也指定编码格式,mysql默认是latin1
2)如果mysql版本是4.x以上,数据库中还是出现乱码,有以下两种解决方法:
一种是在连接数据库的代码中指定编码方式:

代码如下:
String url = “jdbc:mysql://localhost:3306/test2?autoReconnect=true&useUnicode=true&characterEncoding=gbk&mysqlEncoding=utf8″ ;

如果还是不行的话就是用

代码如下:
show variables like ‘collation_%';

这个命令来查看默认字符集,如果不是utf-8的话在my.ini(windows)或者是my.cnf(linux)将相应的编码修改成utf8之后重启mysql服务器就ok了

    
 
 

您可能感兴趣的文章:

  • jsp中文乱码 jsp mysql 乱码的解决方法
  • jsp中文乱码问题(有点特殊),高手进。。。
  • solaris 里面JSP get方式传中文参数 出现乱码的问题
  • 用jsp连上oracle后,在JSP中用(INSERT)插入中文数据后,显示乱码,有办法吗?
  • 解决jsp页面使用网络路径访问图片的乱码问题
  • apache web server + jsp的乱码问题!!!!!
  • JSP中URL的乱码问题!(传递中文)
  • jsp页面传参乱码的解决方法
  • 散分问题:jsp里的乱码问题
  • 使用jsp中url跳转时,怎样让它变成乱码使客户端看不到?
  • 基于jsp:included的使用与jsp:param乱码的解决方法
  • 为什么我访问tomcat4.0的jsp网页,总是乱码???急,,解答给全分
  • 我的JSP为什么输入的是乱码?
  • 为什么在jsp程序中写中文运行后出现乱码?如何解决?我用的是weblogic5.0
  • jsp传值本地无乱码测试机出现乱码问题解决
  • JSP乱码问题,请进!
  • JSP页面传参出现中文乱码的解决方案
  • 在jsp中调用bean,中文在网页上是乱码,手动选字符集才正常
  • jsp超链接中文乱码的解决方法
  • jsp之间传参数接受中文有乱码问题解决方法
  • 想把一个jsp转到另一个jsp页面,要穿参数,中文的(jsp变量)。谁教教我?!
  • 字符集问题--jsp中charset参数值的简体中文值是什么,GB2312是繁体中文吧?
  • 请教:关于英文,简体中文,繁体中文在JSP/JAVA中的整体解决方案!!!
  • 在forte for java 4的Source Editor中编辑jsp时候,可以输入中文,可是保存后关闭再打开,中文显示???,怎么回事啊
  • 请教:关于英文,简体中文,繁体中文在JSP/JAVA中的整体解决方案!!!!!
  • jsp和JAVABEAN的中文显示问题
  • 为什么JSP在JB6.0中显示正常(中文可以显示),但在IE6.0中无法正常显示(中文全为乱码)???
  • JSP的中文问题,如何在<form>中提交中文,用,request.getParameter收中文啊?
  • 各位高手:jsp文件包含jsp文件时的中文问题
  • iplant jsp中文问题
  • JSP的中文问题啊,我就快疯了
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问做jsp和servlet的朋友,有没有工具可以提供jsp,servlet单布编译执行的
  • 在jsp页面加载时自动调用某个特定的servlet,由servlet查询数据库输出WEB页面返回给jsp显示?
  • servlet什么时候用?有了jsp+javabean,为什么还要用servlet??
  • jsp+JavaBean vs jsp+Servlet+JavaBean
  • servlet使用RequestDispatcher到jsp页面,浏览器url栏还是servlet
  • jsp+javabean与jsp+servlet+javabean的区别是什么?
  • jsp/servlet配置的小问题,如何添加servlet包
  • 在编译使用扩展标签的java文件时,得到package javax.servlet.jsp does not exist,package javax.servlet.jsp does not exist的错误
  • 求教:在servlet中设定的cookie,为何在jsp中得不到值,但在别的servlet中能得到?
  • 得分套餐(32分):8。用TOMCAT时JSP表单提交信息给SERVLET处理时,“FORM ACTION=”后的SERVLET文件路径写什么?
  • 请教:servlet如何调用jsp页面或者servlet????
  • 详细说一说jsp+javabean和jsp+servlet的优缺点,现在最常用那种方式,?
  • servlet和jsp的区别
  • 为什么我在jsp页面用 "/servlet/goto.servlet?setname=中文",如果就这样传过去,在servlet里面得到的将是setname=null,如果传其他则可
  • servlet与JSP各有什么特点?
  • 关于jsp+servlet+javaBean结构?
  • 我在书上看到:“JSP页面最终都要编译成SERVLET 才能执行” 那么我自已可以写SERVLET 吗?如果能,又怎样运行它呢 ?
  • JSP和servlet有什么区别???
  • servlet对jsp有什么影响?
  • 学JAVA是先学JSP还是SERVLET?
  • JSP中清空cookie代码参考
  • 现有1.jsp、2.jsp、3.jsp三个文件,我怎么在3.jsp文件中得到1.jsp中输入的值?
  • 一个框界网爷包含上下两个网页a1.jsp和a2.jsp,怎么实现a1.jsp自身不变且提交数据到下面的a2.jsp呢?不胜感激,急..
  • 请问jsp和serlet之间怎么通讯,jsp和jsp之间呢?
  • 请问<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别
  • servlet与JSP各有什么特点? iis7站长之家
  • aaa.jsp有如下链接,当单击该链接时将id值传递给bbb.jsp,怎样在bbb.jsp中引用这个id值?
  • jsp+bean还是jsp+ejb还是jsp+servlet还是asp+activex好?
  • 谁能告诉我,怎么调试jsp程序呀!我在jsp中调用java,但是Tomcat这家伙只会给我报jsp文件出错。这可怎么办呀?
  • jsp中如何获得当前jsp文件所在的目录,用request.getServletPath()得到的路径含有jsp文件名,有没有办法得到目录(不含文件名)?
  • 初学jsp,一个html调用一个jsp,这个jsp调用一个javaBean,已编译成类,最后如何部署(用j2sdkee)?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3