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默认编码不一致造成。