代码如下:try
{
PreparedStatement preStmt = con.prepareStatement("insert into t_bb(f_no,f_name) values(?,?)");
preStmt.setString(1,"ABCDEFG");
preStmt.setString(2,"中国从前有个传说");
preStmt.executeUpdate();
}
catch(SQLException e)
{
System.out.println(new String(e.toString().getBytes("iso-8859-1"),"utf-8"));
}执行插入数据失败后,提示如下:
Duplicate entry 'ABCDEFG-中�?��?�??�??个传说' for key 'PRIMARY'
部分中文能正常显示,而部分为乱码,这是怎么回事?
{
PreparedStatement preStmt = con.prepareStatement("insert into t_bb(f_no,f_name) values(?,?)");
preStmt.setString(1,"ABCDEFG");
preStmt.setString(2,"中国从前有个传说");
preStmt.executeUpdate();
}
catch(SQLException e)
{
System.out.println(new String(e.toString().getBytes("iso-8859-1"),"utf-8"));
}执行插入数据失败后,提示如下:
Duplicate entry 'ABCDEFG-中�?��?�??�??个传说' for key 'PRIMARY'
部分中文能正常显示,而部分为乱码,这是怎么回事?
解决方案 »
- Io 异常: The Network Adapter could not establish the connection
- 求一个drools flow的demo
- 几个框架让我惆怅。。感觉好麻烦。。配置死了
- 请教各位:ExtJs与GWT在JAVA开发中哪个更好用,大家有其他的做页面的技术么?
- struts2之There is no Action mapped for namespace / and action name
- URLConnection只能用在applet或application吗?为什么放在servlet里不行?
- 关于hibernate的问题,急。,,
- 我用tomcat做服务器,调试我自已的jsp文件,怎么出现这样的错误,请指教。。。谢谢
- jdbc+sql server 2k问题
- JDBC的问题:使用Access如何在JBuilder9实现查询字符串功能!
- Eclipse SSH框架集成
- 求hibernate执行原生sql拼凑sql语句的动态参数绑定问题
GBK与GB2312没试过,如果就把程序文本的编码方式改一下,再加上代码改一下:System.out.println(new String(e.toString().getBytes("iso-8859-1"),"GBK"));
的话,这倒是顺便试过,全是乱码。
1、你的主键重复了。
2、你看一下数据库的编码是什么,一般不转换就可以的。
System.out.println(new String(e.toString().getBytes("iso-8859-1"),"utf-8"));
你改为
System.out.println(new String(e.getBytes("iso-8859-1"),"utf-8"));
我感觉你不用转换编码,如果你项目用的就是utf8的话,你就不用转换。还有就是数据库用的是什么编码。
2、统一为utf-8编码,如果我正常插入的话,一切都正常。另外那个e.toString()出来的结果是一样的。
异常问题是你数据库的原因;乱码方面,有可能与你的电脑或者你的编程工具本身的编码问题,导致现实有问题!
1、无论用什么编码:GBK、GB2312、UTF-8 ,数据库的中文都是正常的,就是Java这边的编码与数据库对不上也会是正常的。这可能是mySQL驱动自己做了什么转换。
2、统一都用GBK、GB2312的啊,则没有上述问题,即抛的异常能正常显示中文
3、统一都用UTF-8就有上述问题,就是问题还没解决。