日期:2014-05-20  浏览次数:20723 次

java插入数据库乱码
import java.io.*;
import java.sql.*;
import java.util.*;
public class TxtToSql
{
  public static void main(String args[])
  {
    File file=new File("cost.txt");
    Connection con;
 Statement sql;
 ResultSet rs;
 try
 {
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 }
 catch(Exception e)
 {
  System.out.print(e);
 }
 try
     {
  con=DriverManager.getConnection("jdbc:odbc:traffic","sa","123");
 
  sql=con.createStatement();
        String ar[]=new String[4];  
        Scanner scanner=new Scanner(file);
        System.out.println("链接成功"+scanner.hasNext());
        while(scanner.hasNext())
         {   
           for(int i=0;i<4;i++)
           {
             ar[i]=scanner.next();
             byte[] b=ar[i].getBytes("iso-8859-1");
      ar[i]=new String(b,"gb2312");
    
           }         
          System.out.println("正在录入,请稍候");
          sql.executeUpdate("insert into TrafficPenalty values('"+ar[0]+"','"+ar[1]+"','"+ar[2]+"','"+ar[3]+"')");  
         }
       con.close();
    }
catch(Exception e)
{
  System.out.println(e);
}  
  }

}

下面这句插入语句
sql.executeUpdate("insert into TrafficPenalty values('"+ar[0]+"','"+ar[1]+"','"+ar[2]+"','"+ar[3]+"')");
到sqlserver2005数据库中就乱码了,我想问一下是不是unicode big endian(java) 和unicode little endian(sql server)造成的,然后不论是不是,怎么解决这个问题呢?跪求各位大神解答!!!
java sqlserver 乱码

------解决方案--------------------
打印下ar[i]看是否是乱码,
------解决方案--------------------
转码出了问题吧,应该是在java程序里面数据就已经乱码了
------解决方案--------------------
先输出确认a[0]等是否正常,如果正常可能是数据库的编码和当前IDE默认编码不一致造成。