java +mysql 执行代码发生如下错误
业务描述:
源库 的表 以及该表里所有字段 全部都是latin1
目的库的表 以及该表里所有字段 也全部都是latin1
现在发现从源库 用java代码取出的数据是当是某些不明国家的字符集的时候insert他们到目的库发现失败 (我将这些字段类型改为utf8 发现导出是成功的 但是工程禁止使用utf8, 所以只能考虑其他方法解决问题) Â?panilsko - 1. liga - basketbal" eventid="183511.1
Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xC2\x8Apani...' for column 'colName' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) 这里'colName' 字段类型是varchar 字符集是latin1 不允许修改
代码部分如下
colNam=new String(colNam.getBytes("utf-8"),"latin1"); //我已经对这个字符进行了转换
PreparedStatement pStmt=null;
pStmt=conn.prepareStatement("INSERT INTO aa" +
"(id,typeId,colName)"+
" values(?,?,?)");
conn.setAutoCommit(false); pStmt.setString(1,id);
pStmt.setString(2,typeId);
pStmt.setString(3,colName);
int j=pStmt.executeUpdate();
conn.commit();
不知道如何解决问题 (提示 我在某台机器上是可以正常执行这段代码,数据也全部导到目的db机器;但是换到其他机器就是通不过 Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xC2\x8Apani...' for column 'colName' at row 1)
业务描述:
源库 的表 以及该表里所有字段 全部都是latin1
目的库的表 以及该表里所有字段 也全部都是latin1
现在发现从源库 用java代码取出的数据是当是某些不明国家的字符集的时候insert他们到目的库发现失败 (我将这些字段类型改为utf8 发现导出是成功的 但是工程禁止使用utf8, 所以只能考虑其他方法解决问题) Â?panilsko - 1. liga - basketbal" eventid="183511.1
Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xC2\x8Apani...' for column 'colName' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961) 这里'colName' 字段类型是varchar 字符集是latin1 不允许修改
代码部分如下
colNam=new String(colNam.getBytes("utf-8"),"latin1"); //我已经对这个字符进行了转换
PreparedStatement pStmt=null;
pStmt=conn.prepareStatement("INSERT INTO aa" +
"(id,typeId,colName)"+
" values(?,?,?)");
conn.setAutoCommit(false); pStmt.setString(1,id);
pStmt.setString(2,typeId);
pStmt.setString(3,colName);
int j=pStmt.executeUpdate();
conn.commit();
不知道如何解决问题 (提示 我在某台机器上是可以正常执行这段代码,数据也全部导到目的db机器;但是换到其他机器就是通不过 Exception in thread "main" java.sql.SQLException: Incorrect string value: '\xC2\x8Apani...' for column 'colName' at row 1)
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx
Incorrect string value: '\xC2\x8Apani...' for column 'c
java在数据传输时,采用 ISO-8859-1。