此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【jaujau2008】截止到2008-06-23 18:08:49的历史汇总数据(不包括此帖):
发帖数:10                 发帖分:290                
结贴数:5                  结贴分:130                
未结数:5                  未结分:160                
结贴率:50.00 %            结分率:44.83 %            
楼主加油

解决方案 »

  1.   

    存入之前进行转码,或者将你的web服务器和数据库的编码格式设置成一样
      

  2.   

    你可以修改一下MySql的配置文件
      

  3.   

    我的方法如下:1、设计数据库时使用nvarchar2、用SQL代码插入数据,执行下面的代码(用程序插入就不用了)
    SET character_set_client=GBK;
    SET character_set_connection=GBK;
    SET character_set_database=GBK;
    SET character_set_filesystem=GBK;
    SET character_set_results=GBK;
    SET character_set_server=GBK;3、连接字符串如下:
    jdbc:mysql://localhost/数据库名称?useUnicode=true&characterEncoding=GBK
      

  4.   

    你程序里加个过滤器.
    不然数据存到数据库后会成乱码的.!
    ------------------------EncodingFilter.java------------------------
    package com.take.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 EncodingFilter implements Filter { public void destroy() {
    // TODO Auto-generated method stub } public void doFilter(ServletRequest arg0, ServletResponse arg1,
    FilterChain arg2) throws IOException, ServletException {
    arg0.setCharacterEncoding("GBK") ;
    arg2.doFilter(arg0, arg1) ;
    } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}------------------------ web.xml加入以下代码------------------------
            <filter>
    <filter-name>encoding</filter-name>
    <filter-class>com.take.filter.EncodingFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      

  5.   

    做一个中文处理类。把字段都经过这个方法处理
    package choose.tools;import java.io.UnsupportedEncodingException;public class ToChinese {
    public String ToChange(String text){
    String changed="";
    try {
    changed = new String(text.getBytes("ISO-8859-1"),"gb2312");
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    return changed;
    }
    }在servlet中
    ToChinese change=new ToChinese();
    String lname=request.getParameter("lname");
    lname=change.ToChange(lname);
    类的路径自己import好就可以了
      

  6.   

    jdbc:mysql://localhost:3306/DBdata?useUnicode=true&amp;characterEncoding=GBK
      

  7.   

    最好统一编码用UTF-8的,可避免好多不必要的麻烦!!!
      

  8.   

    修改一下MySql的配置文件my.ini
    分别修改成如下就可以了。[mysql]
     
    default-character-set=gbk[mysqld]default-character-set=utf8
      

  9.   

      其实可以直接设置成UTF-8,也可以设置一个过滤器比较省事一点的!!!
      

  10.   

    这个是mysql的通病,本人建议你重装一个新版本的mysql,这样比较快,我以前也遇到过这样的问题,以上各位提出的方法基本上都试过,不过还是不行,我也一直没有解决一个问题,就是hib和mysql映射的时候出来中文乱码,利用eclipse,hib中显示的是乱码。一直都没有搞定。
      

  11.   

    去MySQL区看看精华贴 相信你能找到满意的答案
      

  12.   

    在mysql配置中,要把字符编码换成gb2312
      

  13.   

    10 楼已经给出了啊,不过建议改成同样的字符集[mysqld]
    设置服务端的系统参数,default-character-set 设好后,以后新建的库、表都是以这个字符集的[mysql]
    设置客户端的系统参数,default-character-set 设好后,客户端与 MySQL 服务端交互都是采用
    这个字符集的,当然了这个也可以不设置,但得在 MySQL JDBC 的连接字符串中指定:
    jdbc:mysql://localhost:3306/<database_name>?useUnicode=true&characterEncoding=GBKPS:my.ini 文件位于 MySQL 安装目录下。
      

  14.   

    环境以Tomcat5.5版本,且以GBK编码为例,变更为UTF-8编码也适合,但要求统一:  1、修改Tomcat的配置文件Server.xml,打开该方法,找到8080端口的Connector标签,注意看看自己的Tomcat端口是不是8080,如果不是注意找到对应端口的Connector,在该标签中增加URIEncoding=“GBK”,保存Server.xml并关闭 2、增加过滤器Filter,可以从Tomcat自带的例子中复制,其代码如下:  package filters;
    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;
    import javax.servlet.UnavailableException;
    public class SetCharacterEncodingFilter implements Filter {
    protected String encoding = null;
    protected FilterConfig filterConfig = null;
    protected boolean ignore = true;public void destroy() {this.encoding = null;
    this.filterConfig = null;}
    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain)
    throws IOException, ServletException {// Conditionally select and set the character encoding to be used
    if (ignore || (request.getCharacterEncoding() == null)) {
    String encoding = selectEncoding(request);
    if (encoding != null)
    request.setCharacterEncoding(encoding);
    }// Pass control on to the next filter
    chain.doFilter(request, response);}
    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 if (value.equalsIgnoreCase("yes"))
    this.ignore = true;
    else
    this.ignore = false;}
    protected String selectEncoding(ServletRequest request) {return (this.encoding);}
    }
    3、在web.xml中增加下面代码:<filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GBK</param-value>
    </init-param>
    </filter> <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>4、编写JSP文件,在文件头部增加代码:<%@ page pageEncoding="GBK"%>或者<%@ page contentType="text/html;charset=GBK"%>根据以上步骤,重新启动Tomcat服务,即可正确显示中文
      

  15.   

    要是你在MYSQL中输入中文的话,就要这么写 CREATE DATABASE DatabaseName DEFAULT CHARACTER SET utf8jdbc:mysql://localhost:3306/DatabaseName?useUnicode=true&characterEncoding=GBK
    这个是连接数据库的,编码要为 GBK;如果你在程度中显示的还是乱码就用(Filter)过虑器
      

  16.   

    10,16,19,20楼的大大们都给了解决办法了,其中19楼给的好象是参数传递乱码解决办法你先看下传递过去的是否有乱码,如果没乱,就按照他们给的办法修改mysql,如果乱了,就按照19楼的修改吧。
      

  17.   

          jsp开发中的中文乱码的处理是一个很简单,又很麻烦的问题,但总结了以后,却又感觉还行,不是那么复杂!总的来说,乱码的问题分了三种:1、jsp页面上的中文乱码:
      a、jsp页面显示乱码:
    是因为浏览器默认支持的地"iso8859-1",是不支持中文的,因此要人工转换:
      在文件头上加上:<%@page contentType="text/html;charset=gb2312" %>
      就处理好了页面的中文显示.
      b、jsp页面传递乱码:
    这个问题,只要在传递参数时,把编码进行转换就可以了,具体代码:
    <%
       String str=newString(request.getParameter("str").getBytes("iso-8859-1"),"gb2312");
    %>
    就可以了。
    2、servlet处理中文参数的乱码:
    servlet中时常要接收jsp页面传过来的参数,它也要进行一次编码转换,转换方式是,在接收参数的方法内,接收参数之前加上:
    request.setCharacterEncoding("gb2312");
    这句话,是专门处理页面传过来的乱码处理问题,保证在这里接收时,能接收到正确的中文。
    而还有一名话,也是要加的:
    response.setContentType("text/html; charset=gb2312");
    这句话,就是专门处理在servlet里,当参数经过处理后,要传到客户端显示时,要保证传送的是正确的中文。
    这两句话,都得写在servlet里。
    3、url传递的中文乱码问题:
    使用url编码传递参数,可以实现客户端会话跟踪,如果参数中有中文字符,就会无法读取。
    如这样的:
    <a href="url.jsp?method1=第一个参数&method2=第二个参数">点击</a>,还有使用get方法时,会经过url,有中文时,也会出问题。
    到url里传递时,中文就会出现问题,处理方法:
    在接收参数的jsp文件里,接收参数时,使用以下方法处理一下:
    <%
       String method1=new String(request.getParameter("method1").getBytes("ISO8859-1"),"gb2312");
       String method2=new String(request.getParameter("method2").getBytes("ISO8859-1"));
    %>
    就可以了。
    而对于从数据库中取出来,首先看的看你的数据库编码是不是与接收数据时的地方一样,不一样就得把数据库的编码转换成一样的。这个就好说。
    如果是一样的,那就是要在接收的地方进行一个编码的转换了。
    如上面的:在jsp页面接收这个参数时,就进行相关的处理。如果在servlet里接收时,就也和上面的一样了。
    对于楼主,OK
      

  18.   

    需要转码没记错的话
    mysql支持中文的字符集是utf8,不是别的  String name=new String(request.getParameter("name").getBytes("ISO8859-1"),"UTF-8"); 
    这样你去试一试吧
      

  19.   

    忘记了
    在连接数据库的时候也定义一下编码的字符集
    如:
    jdbc:mysql://localhost:3306/dbname?useUnicode=true&amp;characterEncoding=utf8
      

  20.   

    你在输入汉字之前,先进行一个sql代码为:set names gb2312;
    这样就可以直接输入汉字了
      

  21.   

    jdbc:mysql://localhost:3306/DBdata?useUnicode=true&amp;characterEncoding=GBK你可能是在创建数据库时出现的错误,没有将字段生成GBK的形式,修改一下就好了,建议使用一些软件来修改如MySQL Manager 3等类似的
      

  22.   

    http://blog.csdn.net/rascalboy520/archive/2008/06/30/2597623.aspx
    我也遇到过,你看看这里的内容,也许对你有帮助!
      

  23.   

    字符集不统一吧(utf-8举例)1、数据库装的时候的默认字符集,一般mysql5.0是lantin1,我一般修改为utf-8;
    2、你的表和字段的编码应该不会修改吧。
    3、数据库连接字符串
    jdbc:mysql://localhost:3306/yourDB?useUnicode=true&amp;characterEncoding=utf-8;
    4、你的servlet or action中的编码。
    5、你的页面编码。
    无非就这么多,具体的修改方式google下就好了。