应该是你的SQLServer 2000的原因,我就遇到过类似的情况。看看数据库“安全性”的登录属性中,语言一项里面是否有“simpleChinese”或者其他类似的。如果没有,大概就是因为这个原因了。至于怎么解决,我不太清楚。试试重装SQLServer 2000吧。:)

解决方案 »

  1.   

    既然你的环境都是e文的,显然要设置sqlserver的字符集为中文编码
    另外若使用jdbc链接,写入中文和读出中文一般应该转换字符集,试试如下:
    从数据库中读出后转:
    str=new String (str.getBytes("ISO-8859-1"),"gb2312");
    写入数据库前转:
    str=new String (str.getBytes("gb2312"),"ISO-8859-1");
      

  2.   

    试试在往数据库里加字段时先调用一下这个方法:
      public String big5ToUnicode(String s)
      {
       try{
           return new String(s.getBytes("ISO8859_1"),"Big5");
           }
         catch(UnsupportedEncodingException uee)
         {
            return s;
          }
       }
      

  3.   

    alphazhao(绿色咖啡) :
       您好, 我和您的思路是一样的, 可是就是不成功, 下面是我的代码, 您看一下有什么问题, 多谢;插入数据库:
    String s1 = null;
    s1 = new String(new String("你").getBytes("GB2312"), "ISO8859_1");
    String sql = "Insert Into t1(c1) Values('" + s1 + "')";
    stmt.executeUpdate(sql);
    查询:
    String s1 = new String(rst.getString(s).getBytes("ISO8859_1"), "GB2312");
    System.out.println(s1);
      

  4.   

    is there anybody knows?
      

  5.   

    首先看看你的能否取出代码,比方说试试e文字符串
    确定程序没有问题,再来调试
    依我看,是
    String s1 = null;
    s1 = new String(new String("你").getBytes("GB2312"), "ISO8859_1");
    这里的问题,此时你若使用System.out.println(s1);输出看看就知道它是乱码。
    直接将之改为String s1 = "你";试试看
    因为写入数据库,若在java里面已经是正常的显示,大多可以不用再转了,很多时候因为要转换,是因为字符串是从界面上、键盘、socket等传进来的,像你这样直接在java里面定义的中文字符串,应该不用转。