数据库驱动不一致引起的问题

问题描述:填报表用IE展现后在字符串类型的单元格里输入超过1332个汉字便不能入库,并且还会将原有单元格对应的数据清空。

解决过程:在本机上做了个填报表重现了用户的问题,润乾V4.0版的设计器自带的ORACLE驱动包为oracle9i.jar,ORACLE 10G安装后的厂商给的驱动是class12.jar,用class12.jar替换oracle9i.jar后能填报二千个汉字。根据oracle的文档,thin的jdbc驱动,如果不是ascii或者拉丁字符集合它就认为其他字符集都需要两个字节来存储,但是通过jdbc的setString方法时候,驱动会把java的utf-16转换为utf-8,这样英文由两个字节变成一个字节,中文由两个字节变为3个字节,所以4000/3大概就是1333个中文字符了。

你可能感兴趣的:(oracle,jdbc,IE)