当前位置: 技术问答>java相关
又是中文乱码问题,呵呵,不知道为什么又会出来烦我?
来源: 互联网 发布时间:2017-03-21
本文导语: 我在做一个录入页面的时候使用了如下代码: ...... sql="............"; PreparedStatement preStmt; preStmt = cn.prepareStatement(sql); ...... 这应该是标准的用法,当然是放在bean中的,继续。下面问题出来了。 1. 如果前面的sql="INSERT...
我在做一个录入页面的时候使用了如下代码:
......
sql="............";
PreparedStatement preStmt;
preStmt = cn.prepareStatement(sql);
......
这应该是标准的用法,当然是放在bean中的,继续。下面问题出来了。
1. 如果前面的sql="INSERT INTO Project(CustID,Code,Name) VALUES ( ?,?,? )";
preStmt.setString(1,"这里是中文");
preStmt.setString(2,"这里是中文");
preStmt.setString(3,"这里是中文");
preStmt.executeUpdate();
好了,现在看看数据库,结果"这里是中文"就都变成了"偬/-"了。
2. 现在我们把sql改了:sql="INSERT INTO Project(CustID,Code,Name) VALUES ( '这里是中文',?,'这里是中文' )";
preStmt.setString(1,"这里是中文");
preStmt.executeUpdate();
再看看结果,变成了: |这里是中文 偬/- 这里是中文| 了。
现在就是说,当中文通过PreparedStatement预处理以后就变成乱码了,那么setString()这个方法会造成乱码。现在我有两个选择,要么我不用PreparedStatement而用Statement自己组合sql语句执行。这样的困难是我要面对转换单引号,逗号等关键子。虽然处理上没有技术难度。 要么我仍然使用setString(),但在此之前转换我的汉字为Ascii,然后提出来的时候再转换为汉字。这样的缺点在于我数据库里面看到的将不是汉字了,对于数据维护极端不便。
我不知道高手们都是怎么做的?谢谢。
顺便说一下,我对读取数据库中的中文是没有问题的。
......
sql="............";
PreparedStatement preStmt;
preStmt = cn.prepareStatement(sql);
......
这应该是标准的用法,当然是放在bean中的,继续。下面问题出来了。
1. 如果前面的sql="INSERT INTO Project(CustID,Code,Name) VALUES ( ?,?,? )";
preStmt.setString(1,"这里是中文");
preStmt.setString(2,"这里是中文");
preStmt.setString(3,"这里是中文");
preStmt.executeUpdate();
好了,现在看看数据库,结果"这里是中文"就都变成了"偬/-"了。
2. 现在我们把sql改了:sql="INSERT INTO Project(CustID,Code,Name) VALUES ( '这里是中文',?,'这里是中文' )";
preStmt.setString(1,"这里是中文");
preStmt.executeUpdate();
再看看结果,变成了: |这里是中文 偬/- 这里是中文| 了。
现在就是说,当中文通过PreparedStatement预处理以后就变成乱码了,那么setString()这个方法会造成乱码。现在我有两个选择,要么我不用PreparedStatement而用Statement自己组合sql语句执行。这样的困难是我要面对转换单引号,逗号等关键子。虽然处理上没有技术难度。 要么我仍然使用setString(),但在此之前转换我的汉字为Ascii,然后提出来的时候再转换为汉字。这样的缺点在于我数据库里面看到的将不是汉字了,对于数据维护极端不便。
我不知道高手们都是怎么做的?谢谢。
顺便说一下,我对读取数据库中的中文是没有问题的。
|
往数据库里存的时候,转换一下:query=new String(query.getBytes("gb2312"),"iso8859-1")就行了。我就是这样用的,但我不是用的PreparedStatement.不知道对你的问题能行不,你试试吧。:)
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。