通过jsp表单post的中文字符在sqlserver表中varchar,nvarchar列中存储为访日区
在数据库表中汉字存储为访日区每个汉字占8个字节,看着像是unicode编码,但web页面的输入输出中文显示均正常。更奇怪的是,通过查询分析器,插入的记录汉字却完全正常,不会是存储为这类字符。   
 我尝试换过sqlserver的jdbc驱动,试过filter,在jsp文件前加入 <%@   page   contentType= "text/html;   charset=gb2312 "   ...,还有request.setCharacterEncoding( "GBK ");也试过getBytes的转换等方法,均没有任何效果。困惑我好久了,请各位高手答疑。   
 以下是我的测试代码: 
 ---------------sql_test3.jsp------------ 
  <%@   page   contentType= "text/html;   charset=gb2312 "   language= "java "   import= "java.sql.*,java.util.Date,java.text.DateFormat "   
errorPage= " "   %>    
  <!DOCTYPE   HTML   PUBLIC    "-//W3C//DTD   HTML   4.01   Transitional//EN "    "http://www.w3.org/TR/html4/loose.dtd ">  
  <html>  
        <head>  
              <meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 ">  
              <title> 无标题文档 </title>  
        </head>  
        <% 
 request.setCharacterEncoding( "GBK ");   
             Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver ").newInstance();    
             String   url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test;useUnicode=true;characterEncoding=GBK; ";    
             String   user= "sa ";    
             String   password= "123 ";    
             int   result=0; 
             Connection   conn=   DriverManager.getConnection(url,user,password);    
             Statement   stmt=conn.createStatement            (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);      
             String   insert_sql= "insert   into   test(no,char1,nchar1)   values( ";    
             insert_sql=insert_sql+ "3 "+ ", "; 
             insert_sql=insert_sql+ " ' "+request.getParameter( "char1 ")+ " ' "+ ", "; 
             insert_sql=insert_sql+ " ' "+request.getParameter( "nchar1 ")+ " ' "+ ") "; 
 //            insert_sql=insert_sql+ " ' "+new   String(request.getParameter( "char1 ").getBytes( "ISO_8859_1 "),    "gb2312 ")+ " ' "+ ", "; 
 //            insert_sql=insert_sql+ " ' "+new   String(request.getParameter( "nchar1 ").getBytes( "ISO_8859_1 "),    "gb2312 ")+ " ' "+ ") ";   
 //            out.println(insert_sql);         
             result=stmt.executeUpdate(insert_sql);      
             stmt.close(); 
             conn.close(); 
 //response.sendRedirect( "submit.jsp "); 
       %>  
        <body>  
              <%=request.getParameter( "char1 ")%>  
              <%=request.getP