加一句,我原先往SQLSERVER里录入数据的时候,就用
String s2 = new String(s1.getBytes(“8859_1”));这条语句转过编码后才录入到SQLSERVER里的。

解决方案 »

  1.   

    String s2 = new String(s1.getBytes("gb2312"), "8859_1");
    试一试
      

  2.   

    先建好SQLServer的ODBC数据源
    然后通过MysQL的客户端工具(如:mysql-front)导入MySQL
      

  3.   

    String s2 = new String(s1.getBytes(“8859_1”));
    应为String s2= new String(s1.getBytes("ISO8859_1"),"gb2312" );
      

  4.   

    我没找到mysql-front,别的方法好像不行
      

  5.   

    这涉及到了你的数据库字符集和jsp页面字符集的设置问题。弄清它们之间的具体设置。
    一般情况下,sql server就是采用的iso-8859-1,还需要这样
    String s2 = new String(s1.getBytes(“8859_1”));转化吗?
      

  6.   

    我从sql server 里取出来就是?号,如果不在网页的开头里加入 charset=gb2312的话,页面上显示全是?号,如果加入这句,就可以正常显示中文。可是我用
    String s2= new String(s1.getBytes("ISO8859_1"),"gb2312" );转换后,插入mysql 里还是?号,应该怎么解决呢?
      

  7.   

    把这一句String s2= new String(s1.getBytes("ISO8859_1"),"gb2312" );
    换成:String s2= new String(s1.getBytes("gb2312"),"ISO8859_1" );
    试试。
      

  8.   

    谢谢stonecsdn(东东),好了,可是真不知道,我刚才在上边测试的时候怎么没成功,顺便再问一句,getBytes里的gb2312是什么意思,后边的ISO8859_1是什么意思?
      

  9.   

    String s2= new String(s1.getBytes("gb2312"),"ISO8859_1" );
      

  10.   

    s1.getBytes("gb2312"),得到s1的以gb2312字符集编码的byte[]即:unicode到byte的转换。
    而String s2= new String(s1.getBytes("gb2312"),"ISO8859_1" );中后边的ISO-8859-1表示把得到的byte[]以ISO8859_1字符集的格式转换成一个unicode,即:byte到unicode的转换。