中文问题,不仅仅是网页上的问题,和数据库,jdbc都有关系,你干吗不试试换个jdbc驱动的版本,或者查查数据库呢。

解决方案 »

  1.   

    我就是往数据库中写入数据,之后数据库中就成为了乱码了。
    当然,读出来后自然就是乱码了。换个jdbc版本,哪里有下载的呀。
    我不知道。我是新手。
      

  2.   

    试试去掉<%@ page contentType="text/html;charset=gb2312"%>和<%
    request.setCharacterEncoding("gb2312");
    %>然后执行你的页面之后看看数据库里的中文是否还是乱吗
      

  3.   

    将向数据库写的数据进行编码转换就可以了!
    try
    {
       String str=new String(yourStr.getBytes("8859_1"),"gb2312");
    }catch(Exception g)
    {
    }
      

  4.   

    steveyue(约翰岳)
    你的方法不对。
     j2nix(八月) 刚刚看完。有点晕晕的。不知道讲的是什么。
      

  5.   

    meluan(luan) 
    yourstr是什么变量。没有定义过的呀。
      

  6.   

    不用上面的那么麻烦,因为我是菜鸟。java的还不会,所以我找了CSDN上一位大侠的解决办法你就在第一行JSP页面上加这四行
    <% response.setContentType("text/html;charset=gbk");  
    request.setCharacterEncoding("gbk");%><%@ page import="java.sql.*" %>
    <%@ page contentType="text/html;charset=gbk"%>一定有效!^-^
      

  7.   

    最好所有和数据库提取的JSP页面上都加上这四行代码!
    这样输入输出都是正常字符了。
      

  8.   

    把你的代码给我看看,还有你的数据库用的是什么,我的msn:[email protected]
      

  9.   

    加入gbk,为什么。这是什么编码方法。不太清楚。
    我用的是SQLServer2000+SP3。
      

  10.   

    你换成用gb2312也可以,但GBK包含的字符集比2312还要多,出现乱码的机会更少!!
      

  11.   

    乱码问题,很正常的!在存入数据库之前执行一下转换:str = str.getByte('gb2312');
    这样存入数据库的文字就不会是乱码了;取出来之前最好再转换一次;
    你可以把字符转换写成一个bean,这样最好了;还有声明一下:不知道怎么解决问题的不要在这里乱说话,误人子弟!
      

  12.   

    在存入数据库之前执行一下转换:str = str.getByte('gb2312');
    这样存入数据库的文字就不会是乱码了;
    取出来之前最好再转换一次;
    你可以把字符转换写成一个bean,这样最好了;还有声明一下:不知道怎么解决问题的不要在这里乱说话,误人子弟!我没有象你那样转化..因为不必那么麻烦..可是我的不是乱码,至于字符转化弄的象你那么麻烦,还要写成一个bean,我看你才是不知所云呢,字符乱码可能是多种原因(我就遇到过由于apache配置不对造成过,jdbc驱动不对造成过),未必人家遇到的就是和你遇到的是一个原因,你凭什么说别人在误人子弟.
      

  13.   

    再说,你说得根本也不着边际啊,你要是说对了还行,str.getByte('gb2312');返回的是什么类型的东西?是byte[],老大,你这种方法能转化字符串?str=str.getByte('gb1312');就这句话,恐怕连编译都通不过...嘿嘿...........
      

  14.   

    让我来告诉你.....如果你用servlet,就在servlet的dopost方法最前面加上如下语句:      String clientLanguage = request.getHeader("Accept-Language");
          if(clientLanguage != null && clientLanguage.compareToIgnoreCase("zh-cn") == 0){
            request.setCharacterEncoding("GBK");
            response.setContentType("text/html;charset=GBK");
          }
    这样完全不用考虑存储数据库的转化与提取的转化;
    如果你没有用servlet,那么就你做一个方法如下:
      public static String getStr(String str) {
        try {
          if (str == null) {
            str = "";
          }
          String tmpStr = str;
          byte[] tmp_t = tmpStr.getBytes("ISO8859-1");
          String tmp = new String(tmp_t);
          return tmp;
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        return "";
      }
    在存入数据库的时候调用一下,再取出的时候调用一下.不要重复调用.这样就可以了.
    如果这样不行,那么再找其他的原因.
      

  15.   

    多谢各位朋友的帮忙,问题已经解决了。
    在此先谢谢各位了。
    尤其是steveyue(约翰岳)这位朋友。
    用了一中午的时间帮我解决了。