我用jsp写了一个程序,就是类似用户数据管理的。在向SQL Server插入数据时出现中文问题,插如的中文变成乱码。但是从数据库中读出数据时,中文显示正常!我在jsp文件中加入了charset=GB2312不知道怎么解决这个问题。是否要在插入数据时将其转换,String.getByte()
??谢谢

解决方案 »

  1.   

    应该是的吧....string.getByte("ISO-8859-1")
    或者试一下request.setEnc...ing("GBK")
      

  2.   

    System.out.println(new String(str.getBytes("GBK"),"ISO8859_1"));
    System.out.println(new String(str.getBytes("GBK"),"utf-8"));
    System.out.println(new String(str.getBytes("GBK"),"GB2312"));
    System.out.println(new String(str.getBytes("GBK"),"GBK"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"GBK"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"ISO8859_1"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"GB2312"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"utf-8"));
    System.out.println(new String(str.getBytes("utf-8"),"GBK"));
    System.out.println(new String(str.getBytes("utf-8"),"utf-8"));
    System.out.println(new String(str.getBytes("utf-8"),"GB2312"));
    System.out.println(new String(str.getBytes("utf-8"),"ISO8859_1"));
    System.out.println(new String(str.getBytes("GB2312"),"GB2312"));
    System.out.println(new String(str.getBytes("GB2312"),"ISO8859_1"));
    System.out.println(new String(str.getBytes("GB2312"),"utf-8"));
    System.out.println(new String(str.getBytes("GB2312"),"GBK"));出现中文的就是正确的编码
    然后再相应的解决就可以
      

  3.   

    又是编码问题啊中文编码问题很烦,要弄懂的东西真不少,最简单的办法,保证数据出口和入口编码一致,建议设置为utf8,因为java编码默认的也是utf8
      

  4.   

    好像是有3中解决方式,getByte应该是最麻烦的吧?其实改改服务器的配置信息试一下在conf的目录下有server.xml这个文件,然后在地97行添加URIEncoding="GBK"看看好用么?再好像就是用过滤器了吧,我还不怎么会用
      

  5.   

    1.jsp
       <%@ page pageEncoding="utf-8"%>
    2.request
       request.setCharaterEncoding("utf-8");(可以用过滤器)
    3.database url
       jdbc:mysql://localhost:3306/test?userUnicode=true&characterEncoding=utf-8
    4.database table
       设置数据库字符集为utf-8
      

  6.   

    System.out.println(new String(str.getBytes("ISO8859_1"),"GBK"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"ISO8859_1"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"GB2312"));
    System.out.println(new String(str.getBytes("ISO8859_1"),"utf-8"));
    form传递默认是ISO8859_1
      

  7.   

    用过滤器最好,不知道怎么用的话我发给你怎么用  [email protected]