1、对于CHAR型、VARCHAR型、ONGVARCHAR型字段的取数据的方法是一样的,都是用rs.getString(col),如果你在数据中保存的不是内码,则不需要用getBytes("iso8859-1"),"gb2312");内码变换,如果中文,它是能够显示出来的。
2、你用rs.getBytes("author") 取数据当然错了。对于
Types.TINYINT、Types.BINARY、Types.VARBINARY、Types.LONGVARBINARY类型可能用rs.getBytes(col);取数据。
3、一般用 <%@page contentType="text/html;charset=gb2312"%>
4、你要保证存在数据库中的数据是中文,你要对页面提交过的中文数据要进行内码变换,如:
String sPara = request.getParameter("para") ;
String sCpara = new String(sPara .getBytes("8859_1"),"gb2312");"para"为你从页面提交过来的中文数据。
5、jdbc驱动用的是oracle自带的classes12.zip是要用到的。
6、对于stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
时,数据库中char型字段,不管是中文英文数字,都显示不出来 比如 fff变成0x6666662020202020202020202020202020202020
改成stmt = con.createStatement();我觉得不会有这样的问题出现,
你好好查一下原因。
2、你用rs.getBytes("author") 取数据当然错了。对于
Types.TINYINT、Types.BINARY、Types.VARBINARY、Types.LONGVARBINARY类型可能用rs.getBytes(col);取数据。
3、一般用 <%@page contentType="text/html;charset=gb2312"%>
4、你要保证存在数据库中的数据是中文,你要对页面提交过的中文数据要进行内码变换,如:
String sPara = request.getParameter("para") ;
String sCpara = new String(sPara .getBytes("8859_1"),"gb2312");"para"为你从页面提交过来的中文数据。
5、jdbc驱动用的是oracle自带的classes12.zip是要用到的。
6、对于stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
时,数据库中char型字段,不管是中文英文数字,都显示不出来 比如 fff变成0x6666662020202020202020202020202020202020
改成stmt = con.createStatement();我觉得不会有这样的问题出现,
你好好查一下原因。
解决方案 »
- action 返回 json 的配置 <全部的分了>
- 有关JSP中文乱码的问题
- & 和&在输出的时候有什么不一样??
- 在jsp中,如何把html代码的文档,转换居html的代码标识
- 软件测试都有什么课程啊?
- 能否得到连Tomcat连接池的各项参数
- 大怎样使网页中的字体不能被改变!我现在做的可以通过"查看->文字大小->最大"来改变.
- 【召唤大神】一个SSH项目,带8080访问不到,去掉8080可以,这是为什么
- 请问如何把jsp页面里一个普通参数传给javascript的方法?
- 如何将一个字符串变量转变成一个符点型数据变量,谢谢
- jsp的网页是不是都必须自己机子是服务器才能有??
- 参数传递的问题
除非你用applet。applet应该是可以的。
target=_blank target=hframe
<iframe name=hframe></iframe>
<form name=show>
<input name=userid>
<input type=button value=检测 onclick='document.show.target="hframe";document.show.action="check.html";document.show.submit()'>
<p>
<input type=button value=提交 onclick='show.target="_self";show.action="a.jsp";show.submit()'>
</form>
<iframe name=hframe style="visibility:hidden"></iframe>其中check.html:(可用check.jsp代替。下面代码可由jsp生成)
<script>
alert("已经有此ID了")
</script>
<form name=show>
<input name=userid>
<input type=button value=检测 onclick='document.show.target="hframe";document.show.action="check.html";document.show.submit()'>
<p>
<input type=button value=提交 onclick='show.target="_self";show.action="a.jsp";show.submit()'>
</form>
<iframe name=hframe style="visibility:hidden"></iframe>其中check.html:(可用check.jsp代替。下面代码可由jsp生成)
<script>
alert("已经有此ID了")
</script>
但是第一个问题还是搞不定啊在数据库里显示的肯定没问题
如果用不带参数的statement,显示一点问题没有
加了参数马上就不行了难道没有人遇到过这个问题??
你把ResultSet设为记录集可以滚动、显示其它更新,记录集不能更新。
没有错啊。
请问你一下,其它类型的数据取出来有没有问题?只能char型的有问题吗?
用getString出来的就有问题
getInt什么都没问题
用没有用classes12.zip?
getString() of scrollable result sets returns incorrect values if
the column data contains multibyte characters.
估计就是这个bug,在817驱动中得到修正。
我下了classes12.zip
把6种组合都试了还是不行
int c;
while((c=isr.read())!=-1) bs.append((char)c);
author=bs.toString();这个时候可以显示英文列了,但是中文列怎么转换还是不行
用的是 bs.toString().getBytes("")请问大家有什么办法??
oracle不懂。
sigh
做了以下几步
1。下载了817驱动,包括classes12.zip 和nls_charset12.zip
2。将nls_charset12.zip也放到resin的lib里头
3。用oracle安装盘重新安装jdbc816,发现里头列出来的jdk1.2驱动居然是未安装,一并选上(还有jdk1.1的)装上
4。将817的ocijdbc8.dll覆盖了bin目录下原有的文件,期间多次报UnSatisfictionError(大概是这个词,忘了)也不知道哪一步是关键成功,放到这里,大家有问题可以参考一下