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

ResultSet 的updateString() 方法 的中文问题
五年前
nanman遇到的问题,不知道现在解决没。
http://topic.csdn.net/t/20010530/15/140384.html
大家都是用executeUpdate()么?

我的问题类似
ResultSet rs;
......
rs.updateString("姓名","李明");  
......
rs.insertRow();
不能正确的在数据库中插入,二现实乱码,如果把“李明”改成"liming",则直接抛出异常。
pageEncoding 采用GB2312编码。


------解决方案--------------------
have a try

String field = "姓名";
String name = "李明";
...
field = new String(field.getByte("xxx"), "yyy"); //进行转码试试
name = new String(name.getByte("aaa"), "bbb"); //进行转码试试
...
rs.updateString(field, name);
...



------解决方案--------------------
确定你的服务器和数据库的默认编码一致并且支持中文,否则使用PreparedStatement更新吧。

至于new String(num.getBytes(),"GBK");这些方法就不要试了,不会有用的。

如果改成"liming"会抛异常,异常是什么?
------解决方案--------------------
我啊,.要好好的学习数据库了,..~~
------解决方案--------------------
如果直接把“李明”改成liming还抛出错的话就应该考虑除了编码方面的其他问题了,把异常给出来看看吧